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 sam man这些是原始单词。剩下的公羊,公羊,山姆,山姆,人是重复的词,又名重复的词。所以总字数为 8重复字数总数为 5剩余字数总数为3。
但我的输出为重复单词数=3(公羊=3,sam=3,人=2)
这是我上面的代码我是Java的初学者。欢迎任何建议:)
Collections.frequency(list, temp) - 1
而不是
Collections.frequency(list, temp)
研究互联网上的收藏频率,你可以得到答案