使用java计算字符串数组中的出现次数并删除重复项

使用java计算字符串数组中的出现次数并删除重复项,java,arrays,string,counter,Java,Arrays,String,Counter,我的密码有问题。我已将文本文件中的单词读入字符串数组,删除了句点和逗号。现在我需要检查每个单词出现的次数。我也设法做到了。但是,我的输出包含文件中的所有单词以及出现的内容。 这样地: 2 鸟类2 是1 前进2 北2 北2 这是我的密码: public static String counter(String[] wordList) { //String[] noRepeatString = null ; //int[] countArr = null ; for (in

我的密码有问题。我已将文本文件中的单词读入字符串数组,删除了句点和逗号。现在我需要检查每个单词出现的次数。我也设法做到了。但是,我的输出包含文件中的所有单词以及出现的内容。 这样地: 2 鸟类2 是1 前进2 北2 北2

这是我的密码:

public static String counter(String[] wordList)
{
    //String[] noRepeatString = null ;
    //int[] countArr = null ;

    for (int i = 0; i < wordList.length; i++) 
    {
         int count = 1;
         for(int j = 0; j < wordList.length; j++)
         {
             if(i != j)  //to avoid comparing itself
             {
                 if (wordList[i].compareTo(wordList[j]) == 0)   
                 {
                     count++;
                     //noRepeatString[i] = wordList[i];
                     //countArr[i] = count;
                 }
             }
         }

         System.out.println (wordList[i] + " " + count);

     }

    return null; 
公共静态字符串计数器(字符串[]字列表)
{
//字符串[]noRepeatString=null;
//int[]countArr=null;
for(int i=0;i
我需要算出1)将计数值放入数组中..2)删除重复。 正如在评论中看到的,我试图使用countArr[]和noRepeatString[],希望这样做……但我有一个NullPointerException


如果您能想到这一点,我们将不胜感激:)

我将首先将数组转换为一个列表,因为它们比数组更易于操作

List<String> list = Arrays.asList(wordsList);
然后在第二个列表中循环,并在第一个列表中获取该单词的频率。但首先,应创建另一个arrayList来存储结果:

ArrayList<String> results = new ArrayList<String>;
for(String word : listTwo){
int count = Collections.frequency(list, word);
String result = word +": " count;
results.add(result);
}
我尚未测试此代码(目前无法测试)。请询问是否有问题或它不起作用。请参阅以下问题以供参考:


代码中存在一些语法问题,但工作正常

ArrayList<String> results = new ArrayList<String>();
for(String word : listTwo){
int count = Collections.frequency(list, word);
String result = word +": "+ count;
results.add(result);
}
ArrayList结果=新建ArrayList();
for(字符串字:listTwo){
int count=Collections.frequency(列表、单词);
字符串结果=单词+“:”+计数;
结果。添加(结果);
}

不使用集合的任何原因(
列表
设置
等)?你能告诉我们你是什么导致了NullPointerException直到一个初学者。我最终会学习这些。@sansix你的意思是什么?如果我删除这些注释标记,它会导致NullPointerException。在掌握数组之前,你应该先掌握集合;数组是一种“痛苦”(无法调整大小,需要操纵索引等)与收藏相比,有没有一种方法可以不用列表或散列来完成它?你也许可以用某种方式来完成,但这更优雅。看看列表和散列,了解新东西总是很好的,因为一个人在遇到问题时需要它。利用这一机会来学习这两件事!你将大量使用它们。:)如果你觉得这个答案很有用,请将它标记为已接受:在未来,我将:)但我的讲师为基本内容设定了范围。无论如何,谢谢你的努力。非常感谢
ArrayList<String> results = new ArrayList<String>;
for(String word : listTwo){
int count = Collections.frequency(list, word);
String result = word +": " count;
results.add(result);
}
for(String freq : results){
System.out.println(freq);}
ArrayList<String> results = new ArrayList<String>();
for(String word : listTwo){
int count = Collections.frequency(list, word);
String result = word +": "+ count;
results.add(result);
}