使用java中的数组从文本文件中读取关键字

时间:2013-02-20 19:05:21

标签: java arrays text-files

我正在创建一个程序,从数组中读取关键字,然后将这些关键字与文本文件中的句子进行匹配。我创建了数组,并将其转换为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 个答案:

答案 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替换故障。