所以我得到一个似乎没有任何意义的错误,而且解决方案很可能是盯着我看。我确实理解“字符串索引超出范围:XX”,但即使我多次输入相同的字符串,它似乎也会改变该值。它说(未知来源),我认为是短语变量?我确实看到错误发生在第85行,它打印短语。然而,对于我的新手来说,一切看起来都很精致。有什么智慧可以摆脱?
来源:
答案 0 :(得分:2)
而不是i <= phrase.length()
您应该使用i < phrase.length()
答案 1 :(得分:0)
在第83行我应该&lt; phrase.length()不是&lt; =它。
固定循环:
for (i = 0; i < phrase.length(); i++) {
答案 2 :(得分:0)
问题是
for (i = 0; i <= phrase.length(); i++); {
应该是
for (i = 0; i <= phrase.length(); i++) {
(最后删除了分号)
<强>解释强>
您的代码已重新格式化:
for (i = 0; i <= phrase.length(); i++)
;
{
pause();
System.out.print(...)
}
只有;
在for循环中。 { ... }
是一个单独的语句(即不是for循环的一部分)。
将变量声明放在循环中通常会阻止将来发生这种情况:(因为循环外的i
引用会产生错误)
for (int i = 0; i <= phrase.length(); i++)
同时强>
它可能应该是<
而不是<=
:
for (i = 0; i < phrase.length(); i++) {
答案 3 :(得分:0)
问题出在phrase.substring(i,i+1)
的最后一次迭代中,它会超出界限。