为什么字符串索引超出范围?

Why String index out of range?

下面是我的 Leetcode 9 回文数代码。当测试用例为 121 时,第 8 行显示“字符串索引超出范围错误”。谁能告诉我为什么会这样?谢谢!

class Solution {
    public boolean isPalindrome(int x) {
        String s = String.valueOf(x);
        int i = 0;
        int j = s.length()-1;
        
        while(i < j){
            if(s.charAt(i) != s.charAt(j)){  <------ line 8
                return false;
            }else{
                s = s.substring(i+1,j);
            }
        }return true;
    }
}

在 while 循环中,j 保持不变,而您的“s”在每个循环中减少 1 个字符。 示例:

s = "theString";
i =0;j = 8;
loop 1: s = "theString";
loop 2: s = "heString";

如您所见,s.subString(0, 8) 将 return 上述异常,因为“s”只有 7 个字符。