Difference between matches and equalsIgnoreCase or equals in string class

你说的曾经没有我的故事 提交于 2019-11-30 05:03:29

There is a big difference - matches checks the match of a String to a regular expression pattern, not the same string. Do not be mislead by the fact that it receives a String as an argument.

For example:

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

The key difference is that matches matches a regular expressions whereas equals matches a specific 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

I suggest you have a look at what a regular expression is

This is what I got from the documentation...

matches (String regex): Tells whether or not this string matches the given regular expression

equals (String Object): Compares this string to the specified object. The result is true if and only if the argument is not null and is a String object that represents the same sequence of characters as this object.

equalsIgnoreCase (String anotherString): Compares this String to another String ignoring case considerations. Two strings are considered equal ignoring case if they are of the same length and corresponding characters in the two strings are equal ignoring case.

matches returns true if the string matches a regular expression, therefore, it should not be removed from the String class.

matches() used for verifying---- whether the given string matches to specified regexpression

ex.;String s = "humbapumpa jim"; assertTrue(s.matches(".(jim|joe)."));

equals() for just checking the given string with specified string as exact match. equalsIgnoreCase() --- will ignore the case sensitive.

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!