【发布时间】:2015-12-17 22:32:48
【问题描述】:
我正在尝试在 java 文件中搜索字符串,这就是我尝试过的。在下面的程序中,我得到的输出是 No Data Found 并且我确信该文件有我正在搜索的单词
import java.io.*;
import java.util.Scanner;
public class readfile {
static String[] list;
static String sear = "CREATE";
public void search() {
Scanner scannedFile = new Scanner("file.txt");
while (scannedFile.hasNext()) {
String search = scannedFile.next();
System.out.println("SEARCH CONTENT:"+search);
if (search.equalsIgnoreCase(sear)) {
System.out.println("Found: " +search);
}
else {
System.out.println("No data found.");
}
}
}
public static void main (String [] args) throws IOException {
readfile read = new readfile();
read.search();
}
}
【问题讨论】:
-
除非您更改了 Scanner 实例的分隔符模式,否则您的标记仍将包含逗号等内容。检查您的文件;它是否包含类似
Create:的内容?如果是这样,那将与您要查找的内容不匹配。使用search.toUpperCase().contains(sear)或search.toUpperCase().indexOf(sear) > -1查找您的单词。 -
由于 Scanner 正在按顺序获取令牌,可能很少有令牌可能不包含“CREATE”,但正如您所提到的,某些令牌肯定会包含它,此外,正如 Tilo 指出的那样,您可以检查使用 contains(),而不是 equalsIgnoreCase()。
标签: java