java字符串匹配问题

时间:2010-02-23 01:16:58

标签: java

我面临一个非常基本的问题。有时候小事情可能需要一整天:( 但是感谢那些总是试图帮助的stackoverflow memebers:)

我想匹配2个字符串,如果它们匹配则应该返回TRUE

现在我正在使用这个

if (var1.indexOf(var2) >= 0) {
return true;
}

但是如果var1的值为“maintain”且var2的值为“inta”或“ain”等,则仍然返回true :(。 java中是否有任何方法可以进行全文匹配而不是部分? 例如

if("mango"=="mango"){
return true;
}
谢谢! ! !

4 个答案:

答案 0 :(得分:5)

为什么不使用内置的String equals()方法?

return var1.equals(var2);

答案 1 :(得分:4)

if( "mango".equals("mango") ) { 
   return true;
}

小心不要在Java中使用==进行字符串比较,除非你真的知道你在做什么。

答案 2 :(得分:3)

equals上使用equalsIgnoreCasejava.util.String来匹配字符串。您还需要检查要比较的对象上的null,我通常更喜欢将commons StringUtils用于这些目的。它具有非常好的常用字符串操作功能。

答案 3 :(得分:1)

以下是一个示例,说明为什么==不是您想要的:

String s1 = new String("something");
String s2 = new String("something");
System.out.println(s1 == s2);
System.out.println(s1.equals(s2));

实际上,虽然s1s2包含相同的字符序列,但它们并不是指内存中的相同位置。因此,这会打印falsetrue