索引OutOfBound一段代码的异常?

时间:2017-02-04 06:41:55

标签: java string indexoutofboundsexception

我正在尝试运行下面的代码,但我得到的是IndexOutOfBoundsException。我知道问题出在哪里但是为了改进代码,我想添加一个if语句,这样如果索引超出范围,while循环就会中断。它现在应该打印"bcd"而不会抛出异常。

相信应该使用if语句:index > input.length() - 3但是我应该在哪里添加它?

public class test {
    public void findAbc(String input) {
        int index = input.indexOf("abc");
        while (true) {
            if (index == -1) {
                break;
            }

            String found = input.substring(index + 1, index + 4);
            System.out.println(found);
            index = input.indexOf("abc", index + 4);


        }
    }

    public void test() {
        findAbc("abcdabc");
    }
}

1 个答案:

答案 0 :(得分:3)

您应该在while-loop条件

中使用此条件
while (index < input.length()-3 && index >= 0) { }