2015-02-07 211 views
0

這是我的場景。是否使用.contains函數來包含可能的空格?

我正在搜索一個文本文件的一行,但我沒有給它完全匹配,所以我使用.contains()函數來檢查只包含字符串的行,但它忽略空白。

例如,如果我在包含

"The Dark Knight" 
"The First Ones" 
"The Unbearable Likeness Of Being" 

那麼它只是返回第一線,因爲它忽略了空間的文件搜索「生命中不能承受神似」。有沒有辦法讓它識別空間?

+0

你在說什麼空間? – SMA 2015-02-07 16:35:53

+0

我不明白你的例子。爲什麼它會返回第一行?你在說什麼空間? – 2015-02-07 16:35:57

+2

你的代碼是什麼?你用'for'循環從'string []'數組遍歷所有行嗎? – Aradmey 2015-02-07 16:36:04

回答

0

方法不排除空格或類似的東西。它只在包含整個字符串時返回true。這很容易證明:

System.out.println("Fred Bloggs".contains("red")); 
System.out.println("Fred Bloggs".contains("Fred Bloggs")); 
System.out.println("Fred Bloggs".contains("Fred Bloggs II")); 
System.out.println("Fred Bloggs".contains("Fred Blags")); 

打印:

true 
true 
false 
false 

對於你的情況,一個for循環可能的工作:

String searchString = "The Unbearable Likeness"; 

String content = new String(Files.readAllBytes(Paths.get("titles.txt")), "UTF-8"); 
String[] titles = content.split("[\r\n]"); 
for (String title: titles) { 
    if (title.contains(searchString)) { 
     System.out.print("Found match: " + title); 
    } 
} 

這將加載從文件titles.txt標題,分成管線,對它們進行迭代並在標題包含搜索字符串時打印消息。

相關問題