在数组上找不到字符串值

时间:2017-04-23 22:53:50

标签: java netbeans-8

我是java的初学者。

为什么总是显示未找到?

如何在数组上找到一个未找到的字符串值?

    String[] array = new String[10];
    String b = "5";
    for (int i = 0; i < 10; i++) {
        String in = String.valueOf(i);
        array[i] = in;
    }
    for (int i = 0; i < 10; i++) {
        if (b.equals(array[i])) {
            System.out.println("found " + array[i]);
        } else if (!b.equals(array[i])) {
            System.out.println("not found");
            System.exit(0);
        }
    }
}

2 个答案:

答案 0 :(得分:2)

当您致电for时,您的第二个i = 0循环终止于System.exit(0);(当您致电时,该程序实际上会终止。)

} else if (!b.equals(array[i])) {
    System.out.println("not found");
    System.exit(0);
}

建议在找到匹配项后将逻辑更改为从循环中断

for (int i = 0; i < 10; i++) {
  if (b.equals(array[i])) {
     System.out.println("found " + array[i]);
     break;
  }
}

答案 1 :(得分:0)

好的,我已经弄清楚了。

感谢您的建议。

只需在循环外部制作“not found”语句。

String[] array = new String[10];
    String b = "10";
    boolean c = false;
    for (int i = 0; i < 10; i++) {
        String in = String.valueOf(i);
        array[i] = in;
    }
    for (int i = 0; i < 10; i++) {
        if (b.equals(array[i])) {
            System.out.println("found " + array[i]);
        } else if (!b.equals(array[i])) {
            c = true;
            }
    }
    if (c == true){
        System.out.println("not found");
    }
}