1
            if(Character.isDigit(character) && Character.isDigit(expression.charAt(x+1)))
            {
                output += character;
            }
            else if(Character.isDigit(character))
            {
                output += character + " ";
            }   
            else
            {
                output += character;
            }

这个代码块在一个更大的 for 循环中,它遍历一个字符串。x+1 导致 StringOutOfBoundsException,有什么办法可以避免吗?

4

1 回答 1

4

您可以添加一个额外的检查,以确保您的值x + 1小于字符串的长度,以确保您的索引不会超过字符串的末尾:

if (Character.isDigit(character) &&
    (x + 1) < expression.length &&
    Character.isDigit(expression.charAt(x+1)))
于 2012-05-11T21:32:45.303 回答