ファイルから入力を取得し、別のファイルで入力を検索するプログラムを作成しようとしています。たとえば、ファイル A から「車」という単語を取得し、単語の場所を出力します (単語が含まれている場合) ) ファイル B 内。
現在3クラスあります。メインクラス、ファイル入力を読み取るクラス、および別のファイルで入力を検索するクラス。
入力を読み取るクラスには、ファイルを取得し、ファイルを 1 行ずつ読み取り、各単語を変数に保存してから、これらの変数を arrayList に追加するコードがあります。
これはコードの一部です:
List<String> listOfWords = new ArrayList<String>();
while((strLine = br.readLine()) != null){
String [] tokens = strLine.split("\\s+");
String [] words = tokens;
for(String word : words){
listOfWords.add(word);
System.out.print(word);
System.out.print(" ");
}
System.out.print("\n");
}
in.close();
return listOfWords;
}
次に、arrayList を取得して、外部ファイル内の単語を検索するコードを含むクラスに配置する必要があります。
これは、単語を検索するコードの一部です。
public void search(List<String> listOfWords) throws FileNotFoundException, IOException{
FileInputStream fstream = new FileInputStream(getSearchFileName());
DataInputStream in = new DataInputStream(fstream);
BufferedReader br = new BufferedReader(new InputStreamReader(in));
String strLine;
while((strLine = br.readLine()) != null){
for(String list: listOfWords){
Pattern p = Pattern.compile(list);
Matcher m = p.matcher(strLine);
int start = 0;
while (m.find(start)) {
System.out.printf("Word found: %s at index %d to %d.%n", m.group(), m.start(), m.end());
start = m.end();
}
}
}
}
コードはスタンドアロンで動作しますが、最初のコード セットから arrayList (listOfWords) を呼び出し、別のクラスにある 2 番目のコード セットでそれを使用するのに問題があります。
追加または調整する必要があるコードに関するヘルプをいただければ幸いです。
よろしく