match和equalsIgnoreCase之间的差异或字符串类中的equals

时间:2012-03-14 10:28:18

标签: java string equals

匹配:将检查输入的完整字符串是否等于字符串对象中的值。

equalsIgnoreCase :忽略大小写,它会检查输入的字符串是否等于字符串对象中的值。

等于:区分大小写并检查输入的字符串是否等于字符串对象中的值。

这就是我所知道的String类中的方法。

是否存在其他差异(我是否遗漏了任何有价值的差异)?

如果没有差异,那么为什么cant匹配方法会从String类中删除,因为它所提出的功能可以使用上述其他方法来实现。

5 个答案:

答案 0 :(得分:21)

有一个很大的区别 - matches检查String与正则表达式模式的匹配,而不是相同的字符串。不要误以为它收到String作为参数。

例如:

"hello".equals(".*e.*"); // false
"hello".matches(".*e.*"); // true

答案 1 :(得分:12)

关键区别在于matches匹配正则表达式,而equals匹配特定的字符串。

System.out.println("hello".matches(".+"));    // Output: true
System.out.println("hello".equals(".+"));     // Output: false
System.out.println("wtf?".matches("wtf?"));   // Output: false
System.out.println("wtf?".equals("wtf?"));    // Output: true

我建议您查看regular expression是什么

答案 2 :(得分:2)

这是我从文档中得到的......

匹配String regex):判断此字符串是否与给定的正则表达式匹配

等于String Object):将此字符串与指定对象进行比较。当且仅当参数不为null并且是一个表示与此对象相同的字符序列的String对象时,结果才为真。

equalsIgnoreCase String anotherString):将此String与另一个字符串进行比较,忽略大小写注意事项。如果两个字符串具有相同的长度并且两个字符串中的相应字符等于忽略大小写,则认为它们是相等的忽略大小写。

答案 3 :(得分:0)

如果字符串与正则表达式匹配,则

matches返回true,因此不应从String类中删除它。

答案 4 :(得分:0)

matches()用于验证----给定的字符串是否与指定的regexpression匹配

ex。; String s =“humbapumpa jim”;         assertTrue(s.matches(|) “的(吉姆JOE)。”);

equals()用于仅使用指定字符串检查给定字符串作为完全匹配。 equalsIgnoreCase()---将忽略区分大小写。