我正在进行一个项目,我输入一个URL,读取文件,并在文本文件中输出行数,字符数和单词数。我没有遇到问题。下面的代码会很长,很抱歉。
我还必须将相同的文本文件输出到文件中的所有单词,以及每个单词在文件中显示的次数。我已经研究了一段时间了,我已经到了将所有行/字符/单词输出到文本文件的地步,但我无法弄清楚如何显示实际的单词和数量他们在文件中的时间。
String[] wordSubstrings = line.replaceAll("\\s+", " ").split(" ");
List<String> uniqueWords = new ArrayList<String>();
for (int i = 0; i < wordSubstrings.length; i++) {
if (!(uniqueWords.contains(wordSubstrings[i]))) {
uniqueWords.add(wordSubstrings[i]);
答案 0 :(得分:0)
你可以使用包含word和count作为成员变量的类的arraylist。
List <MyClass> uniqueWords = new ArrayList<MyClass> ();
MyClass()
{
String uniqueword;
int count;
}
答案 1 :(得分:0)
您可以使用Multiset
Multiset<String> words = HashMultiset.create();
for (String word : wordList)
words.add(word);
for (String word : words.elementSet())
System.out.println(word + ": " + words.count(word));
答案 2 :(得分:0)
我已经使用HashMap测试了一些似乎运行良好的东西。
这是我用来测试它的代码,我希望它有所帮助:
String[] wordSubstrings = new String[]{"test","stuff","test","thing","test","test","stuff"};
HashMap<String,Integer> uniqueWords = new HashMap<>();
for ( int i = 0; i < wordSubstrings.length; i++)
{
if(!(uniqueWords.containsKey(wordSubstrings[i])))
{
uniqueWords.put(wordSubstrings[i], 1);
}
else
{
int number = uniqueWords.get(wordSubstrings[i]);
uniqueWords.put(wordSubstrings[i],number + 1);
}
}
for (Map.Entry<String, Integer> entry : uniqueWords.entrySet()) {
String key = entry.getKey();
int value = entry.getValue();
//Do Something with the key and value
}