Difference between matches and equalsIgnoreCase or

2020-02-23 09:53发布

matches: Will check if the complete string entered is equal to the value present in the string object.

equalsIgnoreCase: Ignoring the case, it checks if the string entered is equal to the value present in the string object.

equals: Case sensitive and it checks if the string entered is equal to the value present in the string object.

This is what I know about the methods, present in String class.

Are there any other differences(Am I missing any valuable differences)?

If there are no differences, then why cant matches method be removed from String class, since the functionality it puts forth can be achieved using the other above mentioned methods, appropriately.

5条回答
做自己的国王
2楼-- · 2020-02-23 10:31

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
查看更多
爷、活的狠高调
3楼-- · 2020-02-23 10:32

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

查看更多
欢心
4楼-- · 2020-02-23 10:42

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.

查看更多
祖国的老花朵
5楼-- · 2020-02-23 10:45

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

查看更多
▲ chillily
6楼-- · 2020-02-23 10:51

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.

查看更多
登录 后发表回答