所以我一直在試圖讓這個工作一段時間。讓我先說這個,說我不是程序員。最近我接受了這更多的愛好。我一直試圖讓2個文本文件逐行搜索。即One有一串單詞(大約10個,每行一個),另一個單詞也有多個(接近500個)。我希望我的程序能夠說出較小文本文件中的每個單詞在較大文本文件中出現的次數。我到目前爲止是:使用一個文本文件來搜索另一個文本文件
import java.util.Scanner;
import java.io.File;
import java.util.regex.Pattern;
public class StringSearch
{
public static void main (String args[]) throws java.io.IOException
{
int tot = 0;
Scanner scan = null;
Scanner scan2 = null;
String str = null;
String str2 = null;
File file = new File("C:\\sample2.txt");
File file2 = new File("C:\\sample3.txt");
scan = new Scanner(file);
scan2 = new Scanner(file2);
while (scan.hasNextLine())
{
str = scan.nextLine();
tot = 0;
while (scan2.hasNextLine())
{
str2 = scan2.nextLine();
if(str.equals(str2))
{
tot++;
}
}
System.out.println("The String = " + str + " and it occurred " + tot + " times");
}
}
}
不知道爲什麼這不工作。它讀取第一個文本文件中的第一個單詞,並計算它在第二個文本文件中出現的次數,但是它只是停止並且不移動第一個文件中的第二個單詞。我希望這是有道理的。我認爲第二個循環有些問題,但我不知道是什麼。
所以,任何幫助將不勝感激。我希望能夠在未來發揮作用並轉向更復雜的項目。要開始正確的地方?
乾杯傢伙
如果將第一個文件的所有單詞加載到數組中,則只需從第二個文件中讀取數據,並將其與數組內容進行比較。單詞的數量足夠小,不會佔用太多內存,而且您只處理一個文件。 – 2013-08-06 12:50:53
注意,使用shell:'fgrep -f sample2.txt sample3.txt' –