9

以下を試しましたが、Eclipseはこれに対してエラーをスローします。

while((s.charAt(j)== null)

文字が であるかどうかを確認する正しい方法は何nullですか?

4

5 に答える 5

12

文字チェックを行う前に、String sがそうでないことを確認してください。nullによって返される文字String#charAtはプリミティブchar型であり、次のようになることはありませんnull

if (s != null) {
  ...

文字を一度に 1 つずつ処理しようとしている場合はString、次を使用できます。

for (char c: s.toCharArray()) {
   // do stuff with char c  
}

( とは異なりCNULLターミネータのチェックは Java では行われません。)

于 2013-02-13T01:09:12.177 に答える
10

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");
    }
于 2016-09-08T12:33:51.863 に答える
8

正しいチェック方法charは実際にここに記載されています。

それは述べています:

次のように変更します。if(position[i][j] == 0) それぞれcharを と比較できますint。配列要素のデフォルト値は'\u0000'0 です。charそして、それはまさにあなたが空のセルを意味していたものだと思います.

于 2015-10-09T18:56:53.200 に答える
-2

が文字列で null でない場合sは、「スペース」を char と比較しようとしているに違いありません。あなたは「スペース」は文字ではなく、スペースは単なる だと思っていますnullが、実際にはスペースは文字です。したがって、 の代わりに(スペース) をnull使用して文字と比較します。

于 2015-07-12T13:27:02.720 に答える