是否使用.contains函数来包含可能的空格?
问题描述:
这是我的场景。是否使用.contains函数来包含可能的空格?
我正在搜索一个文本文件的一行,但我没有给它完全匹配,所以我使用.contains()函数来检查只包含字符串的行,但它忽略空白。
例如,如果我在包含
"The Dark Knight"
"The First Ones"
"The Unbearable Likeness Of Being"
那么它只是返回第一线,因为它忽略了空间的文件搜索“生命中不能承受神似”。有没有办法让它识别空间?
答
方法不排除空格或类似的东西。它只在包含整个字符串时返回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
标题,分成管线,对它们进行迭代并在标题包含搜索字符串时打印消息。
你在说什么空间? – SMA 2015-02-07 16:35:53
我不明白你的例子。为什么它会返回第一行?你在说什么空间? – 2015-02-07 16:35:57
你的代码是什么?你用'for'循环从'string []'数组遍历所有行吗? – Aradmey 2015-02-07 16:36:04