我正在创建一个程序,从数组中读取关键字,然后将这些关键字与文本文件中的句子进行匹配。我创建了数组,并将其转换为arrayList。
String[] faults = { "Misspelled", "Error", "Fixed", "Change","Update", "Out of sync",
"Fail", "API Tooling","Unclear", "Charset", "Typos", "Fixed bug"};
ArrayList newarray = new ArrayList(100);
newarray.addAll(Arrays.asList(faults));
我已经使用while循环和缓冲读取器读取了文件,它逐行读取文件,因为每个句子都是一行。但现在我不知道如何读取数组中的关键字,并将它们与包含句子的文本文件中的单词相匹配。其中依次打印出与数组中所有单词匹配的所有句子。
如果有任何帮助,或者我应该如何做到这一点,我会非常满意。
感谢您的时间。
答案 0 :(得分:2)
试试这个
String[] faults = { "Misspelled", "Error", "Fixed", "Change","Update", "Out of sync",
"Fail", "API Tooling","Unclear", "Charset", "Typos", "Fixed bug"};
try {
BufferedReader reader = new BufferedReader(new FileReader("Azad.txt"));
String line = reader.readLine();
while(line !=null)
{
for(int i = 0 ; i<faults.length;i++){
if(line.contains(faults[i])){
// do something
System.out.println(faults[i]);
}
}
line=reader.readLine();
}
} catch (Exception ex) {
System.out.println(ex.getMessage());
}
答案 1 :(得分:2)
是的你可以通过添加一个计数器
//.....
//.....
int count=0;
while(line !=null)
{
for(int i = 0 ; i<faults.length;i++){
if(line.contains(faults[i])){
// do something
System.out.println(line);
count++;
}
}
line=reader.readLine();
}
System.out.println("Printed Lines = "+count);
//.....
//.....
答案 2 :(得分:1)
同样的例子只是打印线而不是故障[i]
//....
//....
if(line.contains(faults[i])){
// do something
System.out.println(line);
}
//.....
//....
答案 3 :(得分:0)
最简单的方法是使用foreach循环:
for (String fault : faults) {
//check if current sentence contains fault
}
此循环也适用于ArrayList。只需用newArray替换故障。