为什么字符串索引超出范围?
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 个字符。
下面是我的 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 个字符。