快速StringOutOfBoundsException查询

时间:2012-05-11 21:29:30

标签: java exception

            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,有什么办法可以避免它吗?

1 个答案:

答案 0 :(得分:4)

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

if (Character.isDigit(character) &&
    (x + 1) < expression.length &&
    Character.isDigit(expression.charAt(x+1)))