对于将string.split分割为数组的循环,在满足条件后中断

时间:2019-05-07 16:27:12

标签: java android for-loop

我试图打破for循环并仅在满足一个字符串文本(条件)之后执行一次函数。

我尝试了break,尝试了许多其他方法,但是如果条件在for循环等中,则无法使用它。


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 个答案:

答案 0 :(得分:0)

您可以在notifyMe内致电if

for (String name : stringArray) {
    if (someLogic(name)) {
        notifyMe(name, notification);
        break;
    }
}

答案 1 :(得分:0)

如果要在满足条件时中断循环,只需使用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来“离开”循环。查看有关returnbreak之间的区别的更多信息: break vs return

答案 2 :(得分:0)

获取您的条件并从notifyMe中删除并放入for循环中,或者在此位置使用布尔响应并评估为for循环。否则,您将无法停止此循环。

答案 3 :(得分:0)

我已经找到了解决我的问题的方法,如果有人在这里需要它。如果有更好的方法,请随时发布。

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;
    }