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

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

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

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

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

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

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

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

例如:

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

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

 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 

我建议你看一下正则表达式是什么http://en.wikipedia.org/wiki/Regular_expression

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

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

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

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

如果字符串与正则表达式匹配,则matches返回true,因此不应从String类中删除它。

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

ex。; String s =“humbapumpa jim”; assertTrue(s.matches(“。 (jim | joe)。 ”));

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