for(String temp : uniqueSet) {
if((Collections.frequency(list, temp)) >= 2) {
System.out.println(temp + "=" + (Collections.frequency(list, temp) -1));
}
}
我只是想添加我的重复单词数。但我找不到它。
在我的代码片段中,我想从文本文件中获取经常出现的单词。
问题是我可以从文本文件中获取重复单词的值,例如 ram=4 sam = 4 man =2。 现在,
我想添加 4+4+2 并得到总重复字数为 10。
欢迎任何建议。
我是java初学者
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 testsrepeatedwords {
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[] listOfFiles = folder.listFiles(filter);
for (int i = 0; i < listOfFiles.length; i++) {
File file1 = listOfFiles[i];
try {
String content = FileUtils.readFileToString(file1);
} catch (IOException e) {
e.printStackTrace();
}
BufferedReader ins = null;
try {
ins = new BufferedReader ( new InputStreamReader(new FileInputStream(file1)));
} catch (FileNotFoundException e) { e.printStackTrace(); }
String message = org.apache.commons.io.IOUtils.toString(ins);
String[] stringarray = message.split(" ");
List<String> list = new ArrayList<String>(Arrays.asList(stringarray));
list.removeAll(Arrays.asList("", null));
Set<String> uniqueSet = new HashSet<String>(list);
for (String temp : uniqueSet) {
if ( (Collections.frequency(list, temp) ) >= 2 ){
System.out.println(temp+"="+(Collections.frequency(list, temp) -1) ); //after subtraction
int oc = (Collections.frequency(list, temp) -1) ;
// System.out.println(oc);
// System.out.print(oc+" ");
}
}
}}}
这是我的完整代码。 :)
最佳答案
“uniqueSet”真的是一个集合吗?在集合中元素只出现一次。您应该首先检查您的 uniqueSet 实现。如果这确实是一个 Set,则 Collections.Frequency(list, temp)) >= 2 始终为 false。
关于java - 如何使用java添加collections.Frequency中的所有值以获取重复单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34988771/