2

containsIgnoreCase何年もの間、なぜクラスにメソッドがないのか疑問に思っていStringます。とがequalsありequalsIgnoreCaseますが、ありcontainsとありませんcontainsIgnoreCase。その理由はありますか?

4

2 に答える 2

4

正確な理由を言うことは本当に不可能です。equalsおそらく、それはより頻繁に使用されると感じられたので、メソッドcontainsを実装することが最も有用であることがわかりますが、実装するのにそれほど有用ではありません。いずれにせよ、確信するのは難しいです。そうは言っても、元のメソッドに関して独自のメソッドを実際に簡単に実装できます。これらの線に沿った何かが機能する可能性があります。equalsIgnoreCasecontainsIgnoreCasecontains

String s1 = "HeLlO WoRlD";
String s2 = "llo worl";
System.out.println(s1.toLowerCase().contains(s2.toLowerCase()));  // true
于 2012-10-11T22:54:33.160 に答える
1

Stringクラスには、indexOf、lastIndexOf、startsWith、EndWithなどのIgnoreCaseの潜在的な候補となるメソッドがいくつかあります。

しかし、toUpperCasetoLowerCaseは、IgnoreCaseメソッドをいつか時代遅れにするだろうと思います。それが理由かもしれません。

于 2012-10-11T23:10:16.930 に答える