web-dev-qa-db-ja.com

文字列クラスのmatchesとequalsIgnoreCaseまたはequalsの違い

matches:入力された文字列全体が文字列オブジェクトに存在する値と等しいかどうかを確認します。

equalsIgnoreCase:大文字と小文字を区別せずに、入力された文字列が文字列オブジェクトに存在する値と等しいかどうかを確認します。

equals:大文字と小文字が区別され、入力された文字列が文字列オブジェクトに存在する値と等しいかどうかがチェックされます。

これは、Stringクラスに存在するメソッドについて私が知っていることです。

他に違いはありますか(貴重な違いがありませんか)?

違いがない場合は、なぜカントマッチメソッドをStringクラスから削除します。これは、上記の他のメソッドを適切に使用して、それが提供する機能を実現できるためです。

12
Anuj Balan

大きな違いがあります- matchesStringが、同じ文字列ではなく、正規表現パターンと一致するかどうかをチェックします。引数としてStringを受け取るという事実に惑わされないでください。

例えば:

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

主な違いは、matchesは正規表現に一致するのに対し、equalsは特定の文字列に一致することです。

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

正規表現 とは何かをご覧になることをお勧めします

12
Peter Lawrey

これは私がドキュメントから得たものです...

一致String regex):この文字列が指定された正規表現に一致するかどうかを示します

等しいString Object):この文字列を指定されたオブジェクトと比較します。引数がnullでなく、このオブジェクトと同じ文字シーケンスを表すStringオブジェクトである場合にのみ、結果はtrueになります。

equalsIgnoreCaseString anotherString):大文字と小文字を区別せずに、この文字列を別の文字列と比較します。 2つの文字列が同じ長さであり、2つの文字列の対応する文字が大文字と小文字を区別しない場合、2つの文字列は大文字と小文字を区別しないと見なされます。

2
Shashank Kadne

matchesは、文字列が正規表現に一致する場合にtrueを返すため、Stringクラスから削除しないでください。

0
Terry Gardner

検証に使用されるmatches()----指定された文字列が指定された正規表現に一致するかどうか

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

完全一致として指定された文字列で指定された文字列をチェックするためのequals()。 equalsIgnoreCase()---大文字と小文字を区別して無視します。

0
mohan.reddy8