簡體   English   中英

match和equalsIgnoreCase之間的差異或字符串類中的equals

[英]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

我建議你看一下正則表達式是什么

這是我從文檔中得到的......

matchesString regex ):判斷此字符串是否與給定的正則表達式匹配

equalsString Object ):將此字符串與指定對象進行比較。 當且僅當參數不為null並且是表示與此對象相同的字符序列的String對象時,結果才為真。

equalsIgnoreCaseString 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM