Java计算ArrayList中的字符串出现次数

时间:2017-05-09 02:21:53

标签: java string arraylist

我编写了一个程序,其中我有N个字符串,Q查询也是字符串。目标是确定每个查询在N个字符串中出现的次数。

这是我的代码:

ifelse

当我运行我的代码并输入4个字符串,如{abc,abc,abc,def}和3个查询,如{abc,def,ghi}时,我希望输出为3,1和0,因为有3“abc”,1“def”和0“ghi”。但是,所有查询的输出都为零。

我很确定问题来自该方法 int countStringOccurance(ArrayList arr,String str),它应该给出字符串ArrayList中重复字符串的次数。

我在这里遗漏了什么?

4 个答案:

答案 0 :(得分:5)

使用String.equals()来比较字符串,而不是==。而不是:

if (str1==str2)   //  WRONG!!!

if (str1.equals(str2))  // Correct

答案 1 :(得分:2)

// count the number of occurances of a string in an array
int countStringOccurance(ArrayList<String> arr, String str){
    int count = 0;
    for (int i=0; i<arr.size(); i++) {
        if (str.equals(arr.get(i))) { //<-- change your condition to this
            count += 1;
        }
    }
    return count;
}

了解更多信息 Select unlocked row in Postgresql

答案 2 :(得分:0)

在两个对象之间使用==,而不是System.out.println()。然后,当您遇到错误时,尝试在敏感部分中放置一些日志跟踪,例如,使用简单的{{1}},以检查每个对象和变量是否填充良好。可以帮你解决这类问题!

答案 3 :(得分:0)

已经有一个处理此问题的内置方法,Collections#frequency

int occurrences = Collections.frequency(list, "String here");