Java split()检查索引是否等于值
我有一个以字符串形式传递的函数。从这一点上,我用Java split()检查索引是否等于值,java,split,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"); 这是我得到的输
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
有人知道这是为什么吗?在比较
String
s时,始终使用String.equals(String str)
=将比较字符串是否具有相同的内存标识,String.equals()
将比较相同的内容
if(info[0].equals(“+”){do stuff..}
要比较两个字符串
您应该始终使用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)
->如果string1按字母顺序排在string2之前,则返回-1,如果两个字符串相等,则返回0,如果string2按字母顺序排在string1之前,则返回+1
解释:操作符比较两个字符串的内存引用,而不是字符串的内容。应该是:
if(info.length > 0 && "+".equals(info[0])) {
.equals()
,而不是=
。可能是重复的,谢谢!非常详细的解释。