java - 我如何管理 ArrayIndexOutOfBounds

标签 java indexoutofboundsexception

下面是一个搜索连续字符的简单程序。但是,我遇到了异常,因为我正在数组索引之外进行搜索。我明白为什么会发生这种情况,但不确定如何处理?

public static void main(String [] args)
    {
        String term = "Popeye's fishCat";
        String query = "P's SalmonCat";
        int score = 0;

        char [] termChar = term.toCharArray();
        char [] queryChar = query.toCharArray();

        if((queryChar[0]) == (termChar[0]))
        {
            score++;
        }

        for(int i = 0; i < queryChar.length; i++)
        {
            for(int j = 0; j < termChar.length; j++)
            {
                if(queryChar[i] == termChar[j] )
                {
                    if((queryChar[i + 1]) == (termChar[j + 1])) //Causes an exception
                    {
                        System.out.println((queryChar[i + 1]) + " " + (termChar[j + 1]));
                        score++;
                        break;
                    }
                }   
            }
        }

        System.out.println(score);
    }

最佳答案

调整循环条件:

for(int i = 0; i < queryChar.length - 1; i++) {
            for(int j = 0; j < termChar.length - 1; j++)

注意添加的-1

如果您总是查看循环中的下一个项目,则无法循环到最后一个项目,因为它没有下一个项目。

关于java - 我如何管理 ArrayIndexOutOfBounds,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17433058/

相关文章:

java - 如何确保将在构造函数中传递的两个 vector 大小相等?

初始化数组对象时出现java.lang.ArrayIndexOutOfBoundsException

Java 数组索引越界

java - 为什么这是数组越界异常?

java - 计算器算法

java - 定制生产者消费者

java - 以编程方式执行 POST 请求

java - 如何在 MongoDB Java Driver 3.2 中编写 (A || B || C) && (X || Y) 等查询

java - 将列表拆分为 3 个子列表 Java 8+

java - setParameterList 海量数据列表