java如何从1M文件集合中收集唯一的单词及其频率?
我只是想处理这个问题,但在这里和那里玩杂耍
import java.io.*;
import java.util.*;
public class file{
public static void main(String[] args) throws Exception {
Scanner in = new Scanner(System.in);
Scanner sc=null;
int count=0,uwords=0;
File folder = new File("<folder path>");// The collection of files
File[] listOfFiles = folder.listFiles();
HashMap<String,Integer> words_fre = new HashMap<String,Integer>();
FileWriter fw = new FileWriter("abc.txt");
//ArrayList<String> words = new ArrayList<String>();
for (File file : listOfFiles) {
if (file.isFile()) {
//System.out.println(file.getName());
try{
sc=new Scanner(/*new BufferedReader(new File*/(file));
//sc.useDelimiter("\\W");
while(sc.hasNext()){
String s = sc.next().toString();
s = s.replaceAll("\\<.*?>","");
count++; // words count
if(words_fre.containsKey(s))
{
int a = words_fre.get(s);
words_fre.put(s,a+1);
}
else {
words_fre.put(s,1);
uwords++; // unique words count
}
}
Object[] key = words_fre.keySet().toArray();
Arrays.sort(key);
for (int i = 0; i < key.length; i++) {
//System.out.println(key[i]+"= "+words_fre.get(key[i]));
fw.write(key[i]+" : "+words_fre.get(key[i]) +"\n");
}
}catch(IOException e)
{
System.out.println(e);
}
}
}
/*System.out.println("Total Words = "+count);
System.out.println("Unique Words = "+words_fre.size());*/
fw.write("Total Words = "+count+"\n");
fw.write("Unique Words = "+words_fre.size());
fw.close();
}
}
所以基本上我的输出是这样的
例如-
: 3
16800 : 1
23-12-2010 : 1
7 : 1
6 : 2
8वीं : 2
अंशु : 1
अधिकतर : 2
अन्य : 1
अपने : 1
हो। : 1
॥ : 1
: 3
我还需要删除括号中的第一个条目[:3]和第二个最后的条目[| |:1]以及最后一个条目[:3]
# 1 楼答案
可能在你的推拉之间,有人推动了一些改变。要找到答案,可以比较本地提交和远程提交。如果在拉取之后有任何新的提交/推送,并且在本地缺少它,这将是问题的根本原因。你可以在github上找到提交的来源。可以使用下面的命令
首先使用命令
git branch -r
找到我们的确切远程名称git log master oneline
获取本地提交列表git log oneline remote_name/master
获取远程提交列表给出本地缺少的附加提交列表:
git rev-list remote_name /master ^$(git rev-list master all)