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

对于带有string.split到数组的循环,满足条件后中断

对于带有string.split到数组的循环,满足条件后中断

猛跑小猪 2022-11-10 15:18:34
在满足字符串文本(条件)之一后,我试图打破 for 循环并仅执行一次函数。我尝试过 break,尝试了很多其他方法,但我无法让它与 for 循环等中的 if 条件一起工作。static void show(@NonNull Context context, @NonNull Arri<Mylist> notification) {            ....        String strings = "text1,text2,text3,text4,...";        String[] stringarray = strings.split(",");        for(String name : stringarray){            notifyMe(name, notification);        }    private static void notifyMe(String text, @NonNull Arri<Mylist> notification) {        if (notification.loadr().project().toString().toLowerCase().contains(text.toLowerCase())) {            Log.d("TAG", "contains:" + text);        } else {            Log.e("TAG", "doesnt contain:" + text);        }    }目前它当然会执行更多次,但我只需要它一次来执行功能。任何帮助将不胜感激。
查看完整描述

4 回答

?
慕容3067478

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

我已经为我的问题找到了解决方案,如果有人需要它,它就在这里。如果有更好的方法欢迎留言。


static void show(@NonNull Context context, @NonNull Arri<Mylist> notification) {


            ....


        String strings = "text1,text2,text3,text4,...";

        String[] stringarray = strings.split(",");


        for(String name : stringarray){

          if (notifyMe(name, notification)) {

               break;

            }

        }

    }


    private static boolean notifyMe(String text, @NonNull Arri<Mylist> notification) {

        if (notification.loadr().project().toString().toLowerCase().contains(text.toLowerCase())) {

            return true;

        }

        return false;

    }


查看完整回答
反对 回复 2022-11-10
?
www说

TA贡献1775条经验 获得超8个赞

break如果您想在满足条件时中断循环,只需使用语句:


public void breakIt(){

    String stringToSplit = "text1,text2,text3";

    String[] strings = stringToSplit.split(",");

    String condition = "text2";


    for (String s : strings){

        if (s.equals(condition)) {

            System.out.println(s);

            break;

        }

    }


}

您也可以使用return“离开”循环。return查看有关和之间差异的更多信息break: break vs return


查看完整回答
反对 回复 2022-11-10
?
繁花不似锦

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

获取您的条件并从 notifyMe 中删除并放入 for 循环或在此使用布尔响应并评估为 for 循环。否则你不能停止这个循环。



查看完整回答
反对 回复 2022-11-10
?
泛舟湖上清波郎朗

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

您可以notifyMe在内部调用if:


for (String name : stringArray) {

    if (someLogic(name)) {

        notifyMe(name, notification);

        break;

    }

}


查看完整回答
反对 回复 2022-11-10
  • 4 回答
  • 0 关注
  • 132 浏览

添加回答

举报

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