Java split()检查index是否等于一个值

时间:2013-03-26 22:41:25

标签: java split

我有一个以字符串形式传递的函数。从那里我用

分割字符串
String[] info = s.split("\\s+");

然后我想看看第一个索引是否是加号(+)。如果我输入一个字符串:+其他东西它声称+!= +

System.out.println("Check if "+ info[0]+ " = +");
if(info[0]=="+") {
    System.out.println("yes");
} else
    System.out.println("no");

这是我得到的输出:

Interp> + 
Check if + = + 
no
谁知道为什么会这样?

3 个答案:

答案 0 :(得分:4)

应该是:

if(info.length > 0 && "+".equals(info[0])) {

答案 1 :(得分:3)

比较String时,请始终使用String.equals(String str)。 ==将比较字符串以获得相同的内存标识,String.equals()将比较相同的内容。

if(info[0].equals("+")) { do stuff.. }

答案 2 :(得分:0)

为了比较两个Strings,您应该始终使用myString.equals(otherstring); 在你的情况下,这可能是

if(info[0].equalsIgnoreCase("+") {
    System.out.println("yes");
} else
    System.out.println("no");
}

这些是字符串的可能性:

  • string1.equals(string2) - >返回布尔值
  • string1.equalsIgnoreCase(string2) - >返回布尔值
  • string1.compareTo(string2) - >返回 -1 如果string1在string2之前按字母顺序返回, 0 如果两个字符串相等, +1 如果string2在string1之前按字母顺序排列

解释:==运算符比较两个字符串的内存引用而不是字符串的内容。