0
我想從大型文本文件中實現字符串匹配任務。 1.替換所有非字母數字字符 2.計算文本文件中特定術語的編號。例如,匹配項「湯姆」。匹配不區分大小寫。我應該算「湯姆」這個術語。但是明天這個詞不應該被計算在內。從大文本文件中匹配java字符串問題
code template one:
try {
in = new BufferedReader(new InputStreamReader(new FileInputStream(inputFile));
} catch (FileNotFoundException e1) {
System.out.println("Not found the text file: "+inputFile);
}
Scanner scanner = null;
try {
while ((line = in.readLine())!=null){
String newline=line.replaceAll("[^a-zA-Z0-9\\s]", " ").toLowerCase();
scanner = new Scanner(newline);
while (scanner.hasNext()){
String term = scanner.next();
if (term.equalsIgnoreCase(args[1]))
countstr++;
}
}
} catch (IOException e) {
e.printStackTrace();
}
code template two:
try {
in = new BufferedReader(new InputStreamReader(new FileInputStream(inputFile));
} catch (FileNotFoundException e1) {
System.out.println("Not found the text file: "+inputFile);
}
Scanner scanner = null;
try {
while ((line = in.readLine())!=null){
String newline=line.replaceAll("[^a-zA-Z0-9\\s]", " ").toLowerCase();
String[] strArray=newline.split(" ");//split by blank space
for (int =0;i<strArray.length;i++)
if (strArray[i].equalsIgnoreCase(args[1]))
countstr++;
}
}
} catch (IOException e) {
e.printStackTrace();
}
通過運行兩個代碼,我得到了不同的結果,掃描儀看起來像得到正確的one.But對於大的文本文件,掃描儀的運行速度比後者更慢。任何人都可以告訴我原因並提供更有效的解決方案。