私は以下を試しましたが、Eclipseはこれに対してエラーを投げます。文字がNULLかどうかを比較するにはどうすればよいですか?
while((s.charAt(j)== null)
文字がnull
かどうかを確認する正しい方法は何ですか?
私は以下を試しましたが、Eclipseはこれに対してエラーを投げます。文字がNULLかどうかを比較するにはどうすればよいですか?
while((s.charAt(j)== null)
文字がnull
かどうかを確認する正しい方法は何ですか?
文字チェックを行う前に、String
s
がnull
でないことを確認してください。 String#charAt
によって返された文字は、プリミティブchar
種類あり、null
になることはありません:
if (s != null) {
...
一度にString
1から文字を処理しようとしている場合は、使用することができます。
for (char c: s.toCharArray()) {
// do stuff with char c
}
(とは異なり、 C
、NULL
Javaでターミネータのチェックが行われていません)
s
が文字列でnullでない場合は、試しにする必要がありますg "space"とcharを比較します。あなたは "空間"は文字ではなく、空間はただnull
だと思いますが、真実は空間が文字です。したがって、null
の代わりに、(スペース)を使用して文字と比較してください。
質問は2.5歳ですが、スペースを探しているとは思えません。 –
文字がプリミティブデータ型であるため、文字がNULLかどうかを確認することはできません。
これは文字がスペースであることをチェックします。 'char'はプリミティブ型なので' char'は 'null'にはなりません。 – Jesper
ありがとう@Jesperあなたは正しいです –
char
の正しい確認方法は、実際にはhereと記載されています。
それは述べている:
変更は、それがに:
if(position[i][j] == 0)
各char
はint
と比較することができます。 デフォルト値はの配列要素では'\u0000'
、つまり0です。 それはまさにあなたが空のセルを意味するものなのです。
charプリミティブのデフォルト値は、ascii値として0です。 nullの場合、charをチェックできます。例えば:
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'は参照型ではないためnullにできません。それはプリミティブです。 – xenteros
'char'はプリミティブです。ヌルは、割り当てられていない参照のために予約されています。 – madth3
's'文字列ですか?そうであれば 's.charAt'はプリミティブ型' char'を返し、オブジェクト 'Character'を返さないのでnullにすることはできません。 'char'配列のデフォルト値は' '\ u0000' 'またはより単純な '' \ 0''です。 's.charAt(j)== 0'を使用することもできます – Pshemo
Cのように文字列の終わりをチェックしようとしていますか? – madth3