为了账号安全,请及时绑定邮箱和手机立即绑定

如何在Java中使用count sub方法和目标字符串计算添加到列表数组中的字符串?

如何在Java中使用count sub方法和目标字符串计算添加到列表数组中的字符串?

湖上湖 2021-09-29 17:30:31
public class Remove {    public static void main(String[] args) {        ArrayList < String > y = new ArrayList < > ();        y.add("Go");        y.add("Home");        y.add("Go");        y.add("Home");        System.out.println(y);        countOccurence("Go", y);        System.out.println(y);    }    public static int countOccurence(String y, ArrayList < String > t) {        int count = 0;        for (int i = 0; i <= t.size(); i++) {            if (y.equalsIgnoreCase(t.get(i))) {                count++;            }        }        return count;    }}此代码不允许我打印子方法 countOccurence 返回的计数。此代码应计算目标字符串出现在数组 Y 中的次数,然后将其返回到 main 以便可以打印。我能做些什么来解决这个问题?
查看完整描述

3 回答

?
MYYA

TA贡献1868条经验 获得超4个赞

这是因为您正在打印列表而不是您的countOccurence方法的结果。要解决这个问题 -

将结果存储countOccurence在变量中

int count = countOccurence("Go", y);

在下一行打印计数。

System.out.println(count);


查看完整回答
反对 回复 2021-09-29
?
Helenr

TA贡献1780条经验 获得超3个赞

只是一个可选的解决方案。在 中Java8,您可以Stream API通过计数出现次数来做到这一点。


Map<String, Long> counts =

        listOfString.stream().collect(

                Collectors.groupingBy(

                        Function.identity(), Collectors.counting()));

和结果代码;


public class Remove {

    public static void main(String[] args) {

        ArrayList< String > listOfString = new ArrayList < > ();

        listOfString.add("Go");

        listOfString.add("Home");

        listOfString.add("Go");

        listOfString.add("Home");


        Map<String, Long> counts =

                listOfString.stream().collect(

                        Collectors.groupingBy(

                                Function.identity(), Collectors.counting()));


        System.out.println(counts.get("Go"));

        System.out.println(counts.get("Home"));

    }

}


查看完整回答
反对 回复 2021-09-29
?
慕虎7371278

TA贡献1802条经验 获得超4个赞

打印事件:


System.out.println("Occurence of 'Go' is " + countOccurence("Go", y)); 

你也应该删除的变化i <= t.size();来i < t.size();,以避免IndexOutOfBounds错误。


public static void main(String[] args) {

    ArrayList<String> y = new ArrayList<>();

    y.add("Go");

    y.add("Home");

    y.add("Go");

    y.add("Home");

    System.out.println(y);

    System.out.println("Occurence of 'Go' is " + countOccurence("Go", y));

}


public static int countOccurence(String y, ArrayList<String> t) {

    int count = 0;

    for (int i = 0; i < t.size(); i++) {

        if (y.equalsIgnoreCase(t.get(i))) {

            count++;

        }

    }

    return count;

}


查看完整回答
反对 回复 2021-09-29
  • 3 回答
  • 0 关注
  • 156 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信