2016-09-23 84 views
3

從文件中以字符串形式讀取該行並且string.contains(「someexamplestring」)將返回區分大小寫的字符串的輸出。什麼是不區分大小寫的String.contains方法的替代方法?

如果行中有「someExampleString」,則不會返回。

如何以不區分大小寫的方式識別字符串?

+1

使用不區分大小寫的正則表達式,如'string.matches(「(?i)。* someexamplestring。*」)' – Thomas

+0

關於所有的建議toLowerCase/toUpperCase的答案 - 如果你超出ASCII空間,請小心。有些語言的上下左右(或其他方式)不一致。土耳其語與其無點'我'想到https://en.wikipedia.org/wiki/Dotted_and_dotless_I –

回答

3

其實,這是How to check if a String contains another String in a case insensitive manner in Java?


重複如果你已經簡單的要求,並處理英文字母而已,你可以按照下面的答案。

您應該做string.toLowerCase().contains("someExampleString".toLowerCase());

瞭解更多關於public String toLowerCase()來自Java SE文檔。

此外,由Artur Biesiadowski在問題的註釋部分暗示,在這裏重新迭代它:

對於所有問題的答案提示toLowerCase/toUpperCase - 是 如果細心的你去ASCII之外空間。有一些語言 哪裏去低於上面和背面(或其他方式)不是 一致。土耳其憑藉其無點「我」浮現在腦海:Dotted and dotless I


此外,使其更安全,你可以使用另一種方法toLowerCase(Locale.English)和覆蓋區域設置爲英語始終。但是,限制在於你不再國際化。

string.toLowerCase(Locale.English).contains("someExampleString".toLowerCase(Locale.English)); 
+0

謝謝@Am_I_Helpful – Jagadeeswar

1

使用String.toLowerCase(str)方法對您輸入的字符串,然後再申請String.contains(str)方法。

0

您可以toLowerCase()您的字符串,然後做contains與您想要匹配的較低的版本。

1

要實現不區分大小寫的操作,我們需要使兩個字符串都以一種格式(大寫或小寫)。 toLowerCase'toUpperCase'方法將在您想要執行包含操作時有所幫助

toLowerCase中有兩種變體。

somestring.toLowerCase(); 
somestring.toLowerCase(Locale somelocale) 

String case1 = "StackOverFlow"; 
String case2 = "STACKOverfloW"; 
bool isSame ; 
isSame = case1.toLowerCase().Contains(case2.toLowerCase()); 

注意,當你要比較兩個字符串

+0

請在downvote之前添加您的有用命令,以便我可以知道正確的答案。這對學習會有幫助 – Venkat

0

應該轉換兩個字符串爲小寫或大寫equalsIgnoreCase()會有所幫助。然後做手術。

Str.toUpperCase().contains("someexamplestring".toUpperCase()); 

           or 

    Str.toLowerCase().contains("someexamplestring".toLowerCase()); 
0

您可以使用正則表達式:

str.matches("(?i).*someexamplestring.*") 
相關問題