[英]Difference between matches and equalsIgnoreCase or equals in string class
matches :將檢查輸入的完整字符串是否等於字符串對象中的值。
equalsIgnoreCase :忽略大小寫,它檢查輸入的字符串是否等於字符串對象中的值。
equals :區分大小寫,它檢查輸入的字符串是否等於字符串對象中的值。
這就是我所知道的String類中的方法。
還有其他差異(我是否遺漏了任何有價值的差異)?
如果沒有差異,那么為什么cant匹配方法會從String類中刪除,因為它所提出的功能可以適當地使用上述其他方法來實現。
有一個很大的區別 - 匹配檢查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
我建議你看一下正則表達式是什么
這是我從文檔中得到的......
matches ( String regex
):判斷此字符串是否與給定的正則表達式匹配
equals ( String Object
):將此字符串與指定對象進行比較。 當且僅當參數不為null並且是表示與此對象相同的字符序列的String對象時,結果才為真。
equalsIgnoreCase ( String anotherString
):將此String與另一個String進行比較,忽略大小寫。 如果兩個字符串具有相同的長度並且兩個字符串中的相應字符等於忽略大小寫,則認為它們是相等的忽略大小寫。
如果字符串與正則表達式匹配,則matches
返回true,因此不應從String類中刪除它。
matches()用於驗證----給定的字符串是否與指定的regexpression匹配
ex。; String s =“humbapumpa jim”; assertTrue(s.matches(“。 (jim | joe)。 ”));
equals()用於僅使用指定字符串檢查給定字符串作為完全匹配。 equalsIgnoreCase()---將忽略大小寫敏感。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.