方法不排除空格或類似的東西。它只在包含整個字符串時返回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