以下を試しましたが、Eclipseはこれに対してエラーをスローします。
while((s.charAt(j)== null)
文字が であるかどうかを確認する正しい方法は何null
ですか?
以下を試しましたが、Eclipseはこれに対してエラーをスローします。
while((s.charAt(j)== null)
文字が であるかどうかを確認する正しい方法は何null
ですか?
文字チェックを行う前に、String
s
がそうでないことを確認してください。null
によって返される文字String#charAt
はプリミティブchar
型であり、次のようになることはありませんnull
。
if (s != null) {
...
文字を一度に 1 つずつ処理しようとしている場合はString
、次を使用できます。
for (char c: s.toCharArray()) {
// do stuff with char c
}
( とは異なりC
、NULL
ターミネータのチェックは Java では行われません。)
char プリミティブのデフォルト値は、その ascii 値として 0 です。char が null かどうかを確認できます。例:
char ch[] = new char[20]; //here the whole array will be initialized with '\u0000' i.e. 0
if((int)ch[0]==0){
System.out.println("char is null");
}
正しいチェック方法char
は実際にここに記載されています。
それは述べています:
次のように変更します。
if(position[i][j] == 0)
それぞれchar
を と比較できますint
。配列要素のデフォルト値は'\u0000'
0 です。char
そして、それはまさにあなたが空のセルを意味していたものだと思います.
が文字列で null でない場合s
は、「スペース」を char と比較しようとしているに違いありません。あなたは「スペース」は文字ではなく、スペースは単なる だと思っていますnull
が、実際にはスペースは文字です。したがって、 の代わりに(スペース) をnull
使用して文字と比較します。