如何在java中使用2D数组从一堆eml文件中添加唯一字符串和该字符串的计数
基本上我是从本地文件夹中读取.eml文件,我想测量所有文档中每个字符串的频率。我的意思是在我所有的文档中找到一个单词的次数。我想使用一个2d数组来存储所有文档中的唯一单词及其出现次数。我的想法是阅读一个文档,找出唯一的单词,然后将该单词插入数组,然后阅读第二个文档,然后在数组中搜索唯一性,如果找到的单词增加出现次数,如果在数组列表中未找到单词,则将该单词添加到数组中,并增加该单词的计数1,然后在读取之后,获得第三个文件,并执行相同的操作。我在使用来自的帮助。但它并没有检查数组中的唯一性。。。它只是将文件中的唯一单词添加到数组中。例如,在第一个文件中,“word”出现了3次,所以它显示在数组| word | 3 |中,然后在第二个文件中“word”出现了4次,所以它显示了| word | 4 |。但我想把它写成| word | 7 | 我从中获得帮助的代码如何在java中使用2D数组从一堆eml文件中添加唯一字符串和该字符串的计数,java,multidimensional-array,Java,Multidimensional Array,基本上我是从本地文件夹中读取.eml文件,我想测量所有文档中每个字符串的频率。我的意思是在我所有的文档中找到一个单词的次数。我想使用一个2d数组来存储所有文档中的唯一单词及其出现次数。我的想法是阅读一个文档,找出唯一的单词,然后将该单词插入数组,然后阅读第二个文档,然后在数组中搜索唯一性,如果找到的单词增加出现次数,如果在数组列表中未找到单词,则将该单词添加到数组中,并增加该单词的计数1,然后在读取之后,获得第三个文件,并执行相同的操作。我在使用来自的帮助。但它并没有检查数组中的唯一性。。。它只
public static String[][] dupWords (String str) {
String [] stringArray = str.split(" ");
int countWords = 0;
int index = 0;
HashMap<String, String> indexMap = new HashMap<String, String>();
HashMap<String, Integer> countMap = new HashMap<String, Integer>();
//int indexx = 0;
for (int i = 0; i < stringArray.length; i++) {
String s = stringArray[i];
if (!indexMap .containsKey(s)) {
indexMap.put(s, s);
countMap.put(s, 1);
}
else {
int cnt = countMap.get(s);
countMap.put(s, cnt+1);
}
index += s.length() + 1;
}
String [][] retArr = new String[stringArray.length][2];
for (int i = 0; i < stringArray.length; i++) {
String s = stringArray[i];
retArr[i][0] = indexMap.get(s);
retArr[i][1] = Integer.toString(countMap.get(s));
System.out.println(retArr[i][0]);
System.out.println(retArr[i][1]);
}
return retArr;
}
publicstaticstring[][]双字(stringstr){
String[]stringArray=str.split(“”);
int countWords=0;
int指数=0;
HashMap indexMap=新的HashMap();
HashMap countMap=新HashMap();
//int indexx=0;
对于(int i=0;i
我建议您将数据存储在HashMap
中,其中您的单词是关键字,值是出现次数
您可以检查地图中是否存在密钥。如果不是,则插入它,如果是,则增加其值
Foo value = map.get(key);
if (value != null) {
//increment my value
} else {
//insert me
}