0

変数が空の文字列を保持している場合、変数にデフォルト値を割り当てようとしています。次のコードを使用しましたが、うまくいきません。

if (d.lat.trim().isEmpty())
   latt = 9.0819990;
else {
   latt = Double.valueOf(d.lat.trim()).doubleValue();
}

上記のコードはエラーになります。

cannot find symbol
symbol  : method isEmpty()
location: class java.lang.String

それから私は使用しました

if (" ".equals(d.lat.trim()))
   latt = 9.0819990;
else {
   latt = Double.valueOf(d.lat.trim()).doubleValue();
}

上記のコードはifセクションをジャンプし、空の文字列を double に変換しようとするため、空の文字列に関するエラーがスローされます。

SO、私は何を間違っていますか?

4

5 に答える 5

3

空の文字列は"", ではありません" "(引用符の間にスペースがないことに注意してください)。

于 2013-01-15T14:44:56.957 に答える
3

NPEは正しいです。
しかし、私は Apache をお勧めできますかStringUtils
http://commons.apache.org/lang/api-2.5/org/apache/commons/lang/StringUtils.html#isBlank(java.lang.String )

String が空白、空 ("")、または null であるかどうかを確認します。

 StringUtils.isBlank(null)      = true
 StringUtils.isBlank("")        = true
 StringUtils.isBlank(" ")       = true
 StringUtils.isBlank("bob")     = false
 StringUtils.isBlank("  bob  ") = false
于 2013-01-15T14:48:06.013 に答える
1

String.isEmpty()最初のブロックは私には問題ないように見えますが、おそらくまだメソッドを持たないJava5でコンパイルしています。

于 2013-01-15T14:45:03.583 に答える
1

String.length() == 0代わりに使用するとどうなりますString.isEmpty()か?

于 2013-01-15T14:46:31.053 に答える
1

Apache StringUtils は、実装している検証の問題を解決するための非常に優れた方法です。それにもかかわらず、.isEmpty メソッドを使用できないというエラーは非常に奇妙に思えます。使用している JDK のバージョンは何ですか? 最新バージョン (JDK 7) または少なくとも JDK 6 を使用して、クラスパス内の JDK のバージョンを変更してみてください。

また、空の文字列は "" で表され、空白のない引用符のみであることも覚えておいてください。あなたが検証している方法は問題ないようです。このようなもので試すことができます。

if (d.lat.trim().isEmpty() || d.lat.length == 0)
   latt = 9.0819990;
else {
   latt = Double.valueOf(d.lat.trim()).doubleValue();
   // or as mentioned before: latt = Double.parseDouble(d.lat.trim());
}
于 2013-01-15T15:02:12.717 に答える