機能していないように見える単純な if ステートメントがあります。私はアイデアがありません。なぜ私の論理が間違っているのか分かりません。
String a = "bf";
if (a.compareTo("bf"))
{
// do this
}
compareTo
声明の下に赤線が引かれています。
Type mismatch: cannot convert from int to boolean
機能していないように見える単純な if ステートメントがあります。私はアイデアがありません。なぜ私の論理が間違っているのか分かりません。
String a = "bf";
if (a.compareTo("bf"))
{
// do this
}
compareTo
声明の下に赤線が引かれています。
Type mismatch: cannot convert from int to boolean
compareTo
メソッドは int 値を返します。そうするように
if (a.compareTo("bf") == 0)
{
//
}
(また)
使用.equals
方法
if (a.equals("bf"))
{
// do this
}
同等性を比較するときは、equals()を使用する必要があります。これは、意図が明確に表現されているためです。
compareTo()には、Comparableインターフェイスを実装するオブジェクトでのみ機能するという追加の欠点があります。
これは、文字列だけでなく、一般的に適用されます。
このcompareTo
メソッドは、int
ではなく値を返しますboolean
。
次のように変更する必要があります
if (a.compareTo("bf") == 0)
または使用する
if (a.equals("bf"))
compareTo はブール値ではなく int を返します。
http://developer.android.com/reference/java/lang/Comparable.html
このインスタンスが別のインスタンスより小さい場合は負の整数です。このインスタンスが別のインスタンスより大きい場合は正の整数。このインスタンスが別のインスタンスと同じ順序である場合は 0。
したがって、チェックする必要があります== 0
ちなみに注文できるものに限ります。等しいかどうかを確認したいだけの場合は、.equals を使用します
これに変更
String a = "bf";
if (a.compareTo("bf") == 0)
{
// do this
}
compareto は整数を返します。if ステートメントはブール値をチェックする必要があるため、コードを次のように変更します。
String a = "bf";
if (a.compareTo("bf")==0)
{
// do this
}
クラスequals()
のメソッドを使用して、ここで2 つのオブジェクトを比較します。Object
String
String a = "bf";
if (a.equals("bf"))
{
// do this
}
さらに インターフェースcompareTo()
の方法です。java.lang.Comparable