String CompareTo不工作

时间:2012-10-01 08:25:23

标签: java string string-comparison

我有一个简单的if语句似乎不起作用。我没有想法。我不明白为什么我的逻辑错了。

String a = "bf";

if (a.compareTo("bf"))
{
    // do this
}

我在compareTo声明下获得了红线。

Type mismatch: cannot convert from int to boolean

7 个答案:

答案 0 :(得分:2)

compareTo方法返回int值。这样做

if (a.compareTo("bf") == 0)      
{
    //
} 

(或)

使用.equals方法

if (a.equals("bf"))

{
// do this
}

答案 1 :(得分:1)

compareTo返回一个int,而不是一个布尔值。

http://developer.android.com/reference/java/lang/Comparable.html

如果此实例小于另一个实例,则为负整数;如果此实例大于另一个实例,则为正整数;如果此实例与另一个实例具有相同的顺序,则为0。

所以你应该检查== 0

顺便说一下,它适用于只能订购的东西。如果您只想检查是否相等,请使用.equals

答案 2 :(得分:1)

将其更改为此

String a = "bf";  
if (a.compareTo("bf") == 0)      
{
 // do this     
} 

答案 3 :(得分:1)

compareTo方法返回int值,而不是boolean

您必须将其更改为

if (a.compareTo("bf") == 0)

或使用

if (a.equals("bf"))

答案 4 :(得分:1)

  

比较相等时,你应该使用equals(),因为它   以清晰的方式表达你的意图。

     

compareTo()的另一个缺点是它只适用于对象   实现Comparable接口。

     

这通常适用于字符串。

答案 5 :(得分:1)

使用equals()类的Object方法比较两个String对象。

String a = "bf";

if (a.equals("bf"))
{
    // do this
}

此外 compareTo()java.lang.Comparable接口的方法。

答案 6 :(得分:1)

compareto返回一个整数。 if语句需要一个布尔值来检查,所以将代码更改为:

String a = "bf";

if (a.compareTo("bf")==0)
{
  // do this
}