Java:在多个文件中搜索单词

时间:2012-01-13 18:45:19

标签: java search arraylist indexof

基本上,我需要在多个文件中检查单词的出现情况 此外,单个文本文件中可能存在多次单词 我想为每个文件保存一个单词的位置;所以我写了下面的代码:

    public static void findWord(String word, File file){
        try{
             BufferedReader input = new BufferedReader(
                        new InputStreamReader(
                        new FileInputStream(file)));
            String line;
            ArrayList<Integer> list=new ArrayList<Integer>();
            while((line=input.readLine())!=null){
                if(line.indexOf(word)>-1){
                    list.add(line.indexOf(word));
                }
            }
           System.out.println(file +": "+ list);

            input.close();
        }
        catch(Exception ex){
            ex.printStackTrace();
        }
    }


首次成功发生后,我的代码无法添加到列表中。所以每个数组中只有一个元素 我如何解决它?
P.S我的文本文件由一行

组成

1 个答案:

答案 0 :(得分:3)

这里是修复(用这个替换你的while循环):

while ((line = input.readLine ()) != null)
{
    int index = -1;
    while ((index = line.indexOf (word, index + 1) > -1)
    {
        list.add (index);
    }
}