是否使用.contains函数来包含可能的空格?

是否使用.contains函数来包含可能的空格?

问题描述:

这是我的场景。是否使用.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

方法不排除空格或类似的东西。它只在包含整个字符串时返回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标题,分成管线,对它们进行迭代并在标题包含搜索字符串时打印消息。