我正在尝试制作一个程序,该程序从文件中获取输入,然后在不同的文件中搜索输入,例如,它从文件 A 中获取单词“car”并输出单词的位置(如果包含该单词) 在文件 B 中。
目前我有3节课。一个主类,一个读取文件输入的类和一个在另一个文件中搜索输入的类。
读取输入的类具有获取文件的代码,逐行读取文件并将每个单词保存到变量中,然后将这些变量添加到 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)并在第二组代码中使用它,它们位于不同的类中。
任何有关我需要添加或调整的代码的帮助将不胜感激。
问候