我意识到我在这里同时问了两个不同的问题,但我认为它们是相关的(即使只是轻微的)。无论如何,我想做的是比较两个字符串列表(不一定是 Java 列表)并删除两个列表中出现的单词。我正在考虑使用 anArrayList
或 a HashSet
,HashSet
因为列表没有排序,但我对 HashSet 的问题是我读过它们不允许重复。这与我的其他要求略有冲突,因为我希望能够计算每个单词出现的次数,但只显示一次……如果这有意义的话。想想一个 WordCloud 的例子。
这是我目前拥有的,将两个文本文件的内容保存到两个ArrayList
s:
ArrayList<String> words = new ArrayList<String>();
File file = new File(fileName);
Scanner scanner = new Scanner(file).useDelimiter("$");
while(scanner.hasNext())
{
String wrd = scanner.nextLine();
words.add(wrd);
}
我不得不使用两种不同的方式来保存数据,因为这两个文本文件的结构不同
ArrayList<String> webWords = new ArrayList<String>();
File webFile = new File(webFileName);
BufferedReader br = new BufferedReader(new FileReader(webFileName));
String testLine = "", str = "";
int count = 0;
String s;
while ((testLine = br.readLine()) != null) {
str += testLine + " ";
}
StringTokenizer st = new StringTokenizer(str);
while (st.hasMoreTokens()) {
s = st.nextToken();
webWords.add(s);
count++;
}
现在我可以轻松地以类似的方式创建两个 HashSet,但我目前正在使用 ArrayList,因为它允许重复,我仍然不确定哪个最适合我的需要。
我需要将第二个列表与第一个进行比较,并删除第二个列表中出现在第一个列表中的所有单词。
我的第二个问题是试图确定(在我删除常用词之后)哪些词最常出现。
任何帮助或方向将不胜感激。