匹配和等于之间的差异在字符串类中区分大小写或等于

2022-09-03 16:57:06

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

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

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

这就是我对String类中存在的方法的了解。

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

如果没有区别,那么为什么不能从String类中删除匹配方法,因为它提出的功能可以使用上面提到的其他方法适当地实现。


答案 1

有一个很大的区别 - matchs检查a与正则表达式模式的匹配,而不是相同的字符串。不要被它作为参数接收的事实所误导。StringString

例如:

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

答案 2

主要区别在于,它与正则表达式匹配,而 equals 与特定 String 匹配。matches

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

我建议你看看什么是正则表达式