0

我正在创建一个程序,它从数组中读取关键字,然后将此关键字与文本文件中的句子进行匹配。我已经创建了数组,并将其转换为 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 循环和缓冲区读取器读取了文件,它逐行读取文件,因为每个句子都是一行。但是现在我被困在如何读取数组中的关键字,并将它们与包含句子的文本文件中的单词进行匹配。依次打印出与数组中所有单词匹配的所有句子。

我会很高兴得到任何帮助,或者关于我应该如何做到这一点的任何建议。

感谢您的时间。

4

4 回答 4

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());
        }
于 2013-02-20T19:27:45.337 回答
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);
//.....
//.....
于 2013-02-20T20:23:21.153 回答
1

同样的例子只是打印线而不是故障[i]

//....
//....


    if(line.contains(faults[i])){
     // do something
     System.out.println(line);
    }
//.....
//....
于 2013-02-20T20:04:38.180 回答
0

最简单的方法是使用 foreach 循环:

for (String fault : faults) {
    //check if current sentence contains fault    
}

此循环也适用于 ArrayList。只需用 newArray 替换故障即可。

于 2013-02-20T19:20:57.860 回答