【发布时间】:2015-07-15 17:15:26
【问题描述】:
我知道这个问题已经被问过好几次了,但我找不到在我的代码中应用它的方法。 所以我的建议如下: 我有两个文件 griechenland_test.txt 和 outagain5.txt 。我想阅读它们,然后获取 outagain5.txt 在另一个文件中的百分比。
Outagain5 有这样的输入:
mit dem 542824
und die 517126
Griechenland 是来自 Wikipedia 的关于该主题的普通文章(就像普通文本一样,没有频率计数)。
1.问题 - 如何将输入拆分为二元组?像每两个词一样,但总是与前一个词?所以如果我有单词 A, B, C, D --> 得到 AB, BC, CD ? 我有这个:
while ((sCurrentLine = in.readLine()) != null) {
// System.out.println(sCurrentLine);
arr = sCurrentLine.split(" ");
for (int i = 0; i < arr.length; i++) {
if (null == hash.get(arr[i])) {
hash.put(arr[i], 1);
} else {
int x = hash.get(arr[i]) + 1;
hash.put(arr[i], x);
}
}
然后我用这段代码读取了另一个文件(我只是添加了单词,而不是数字(我用 4 个空格分隔,所以这两个单词位于 h[0])。
for (String line = br.readLine(); line != null; line = br.readLine()) {
String h[] = line.split(" ");
words.add(h[0]);
}
2。问题 现在我对哈希中的字符串 x 和单词中的字符串 s 进行比较。我已经把else System out.print 来获取outagain5.txt 中不包含哪些单词,但是有几个单词打印出来,ARE 包含在outagain5.txt 中。我不明白为什么:D 所以我认为比较效果不好,或者也许这会解决第一个问题。
ArrayList<String> words = new ArrayList<String>();
ArrayList<String> neuS = new ArrayList<String>();
ArrayList<Long> neuZ = new ArrayList<Long>();
for (String x : hash.keySet()) {
summe = summe + hash.get(x);
long neu = hash.get(x);
for (String s : words) {
if (x.equals(s)) {
neuS.add(x);
neuZ.add(neu);
disc = disc + 1;
} else {
System.out.println(x);
break;
}
}
}
希望我把我的问题说清楚了,非常感谢!!
【问题讨论】:
标签: java string text arraylist