如何在不计算java中文件的原始单词的情况下查找重复单词?

时间:2016-01-25 05:05:38

标签: java arrays string text duplicates

 import java.io.BufferedReader;   
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.FileNotFoundException;
 import java.io.FilenameFilter;
 import java.io.IOException;
 import java.io.InputStreamReader;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
 import org.apache.commons.io.FileUtils;
 public class sample{
    public static void main(String[] args) throws FileNotFoundException, IOException {

    FilenameFilter filter = new FilenameFilter() {
        public boolean accept(File dir, String name) {
            return name.endsWith(".txt");
        }
    };

    File folder = new File("E:\\testfolder\\");
    File[] list Of Files = folder.listFiles(filter);

    for (int i = 0; i < list Of Files.length; i++) {
        File file1 = list Of Files[i];
        try {
            String content = FileUtils.readFileToString(file1);

        } catch (IOException e) {

            e.printStackTrace();
        }

        BufferedReader ins = null;
        try {
            ins = new BufferedReader (
                    new InputStreamReader(
                        new FileInputStream(file 1)));
        } catch (FileNotFoundException e) {

            e.printStackTrace();
        }

        String message = org.apache.commons.io.IOUtils.toString(ins);
        String[] string array = message.split(" "); 
        List<String> list = new ArrayList<String>(Arrays.asList(string array)); 
    //  System.out.println("Repeated words found in the file"); 
        Set<String> unique Set = new HashSet<String>(list); 
        for (String temp : unique Set) { 
                if ( (Collections.frequency(list, temp)) >= 2 ){
        System.out.println(temp+"="+Collections.frequency(list, temp));
        //  System.out.println(temp);
         int occurrences = Collections.frequency(list, 2);

        } 
        }
        }}}

到目前为止,我尝试了,但是无法获得输出 这是我的逻辑。

这些是文件中的字符串或单词。 ram ram ram 山姆山姆 男人

在这个例子中,ram sam man这些是原始单词。 剩下的公羊,公羊,山姆,山姆,男人都是重复的单词,也就是重复的单词。 所以 单词总数为8 重复单词的总数为5 剩余单词总数为3。

但是我的输出是 没有重复的单词= 3(ram = 3,sam = 3,man = 2)

这是我上面的代码 我是java的初学者。 欢迎任何建议。:)

1 个答案:

答案 0 :(得分:1)

Collections.frequency(list, temp) - 1 

而不是

Collections.frequency(list, temp)

关于网络中的collections.frequency的研究,你可以得到答案