我收到以下错误:java.lang.StringIndexOutOfBoundsException
我无法弄清楚原因。希望你们中的一个人知道解决方案。
提前致谢。
static boolean palindromeCheck(String toBeChecked) {
String reverse = "", inputWithoutSpaces = "";
for (int i = 0; i < toBeChecked.length(); i++)
inputWithoutSpaces += toBeChecked.charAt(i);
for (int i = inputWithoutSpaces.length(); i > 0; i--) {
if (inputWithoutSpaces.charAt(i) != ' ')
reverse += inputWithoutSpaces.charAt(i);
}
return (inputWithoutSpaces == reverse) ? true : false;
}
答案 0 :(得分:0)
charAt()
接受从0到length()-1
的索引,而不是从1到length()
。
答案 1 :(得分:0)
问题在于:for (int i = inputWithoutSpaces.length(); i > 0; i--)
让我们说inputWithoutSpaces
的长度为10.即索引0
到9
。在循环中,您从inputWithoutSpaces.length()
索引10
开始计算。哪个不存在。加强了越界异常。
将其更改为for (int i = inputWithoutSpaces.length() - 1; i >= 0; i--)
,因此您可以从9
计算到0
。
答案 2 :(得分:0)
你的字符串有一个特定的长度(比如说长度:5),但是当你想要反向迭代它时,你需要从4开始并下降到0.这意味着你需要改变你的for循环并使它成为像这样:
for (int i = inputWithoutSpaces.length() - 1; i >= 0; i--)