串考慮:忽略大小寫的「包含」在Java
public static void main(String[] args) {
String s = "AbcD";
System.out.println(s.contains("ABCD"));
System.out.println(s.contains("AbcD"));
}
輸出:
false
true
我需要的結果在兩種情況下是真實的不管的情況。可能嗎?
串考慮:忽略大小寫的「包含」在Java
public static void main(String[] args) {
String s = "AbcD";
System.out.println(s.contains("ABCD"));
System.out.println(s.contains("AbcD"));
}
輸出:
false
true
我需要的結果在兩種情況下是真實的不管的情況。可能嗎?
你需要使用contains
s.toLowerCase().contains("ABCD".toLowerCase());
前兩個字符串相同的情況下轉換,您可以使用org.apache.commons.lang3.StringUtils.containsIgnoreCase(String, String)
StringUtils.containsIgnoreCase(s, "ABCD")
返回true
Apache文檔here
我認爲這是最好的答案。更方便。 @PSR,我想你應該把這個標記爲答案,如果這真的有幫助。 –
使用「toLowercase 「幫助:
System.out.println(s.toLowercase(Locale.US).contains("ABCD".toLowercase (Locale.US)));
(當然你也可以使用toUppercase代替)
你可以使用一個Pattern
匹配,使不區分大小寫的匹配:
Pattern pattern = Pattern.compile(Pattern.quote(s), Pattern.CASE_INSENSITIVE);
pattern.matcher("ABCD").find();
pattern.matcher("AbcD").find();
使用正則表達式有點低效:) –
@phloc使用'toLowerCase()'的問題是結果取決於當前的語言環境。 – zakinster
這就是爲什麼我建議小寫(Locale.US) - 或任何你想要的語言環境。 –
你可以用toLowerCase
做到這一點。類似這樣的:
s.toLowerCase().contains("aBcd".toLowerCase());
請嘗試以下操作。它將返回0
如果字符串匹配...
System.out.println(s.compareToIgnoreCase("aBcD"));
它將很好地工作。
請參閱http://stackoverflow.com/questions/14018478/string-contains-ignore-case – devnull