我每次执行此代码时都会遇到一些问题,这会给我一个错误 字符串索引超出范围:'n' n - 是没有。在与此代码相关的文本框中输入的字符数... (即文本框 - t2。)它停留在第一个文本框中,检查它不会转到下一个,如数组中所述。
Object c1[] = { t2.getText(), t3.getText(), t4.getText() };
String b;
String f;
int counter = 0;
int d;
for(int i =0;i<=2;i++)
{
b = c1[i].toString();
for(int j=0;j<=b.length();j++)
{
d = (int)b.charAt(j);
if((d<65 || d>90)||(d<97 || d>122))
{
counter++;
}
}
}
它基本上是一个验证代码,我试图做没有例外和东西(仍然在学习的过程:))
任何帮助将不胜感激 非常感谢。
答案 0 :(得分:2)
在迭代字符串时使用<
,而不是<=
。使用<=
时,如果j
等于字符串的长度,则会出现越界错误。请记住,字符串中的字符从零开始编制索引。
for(int j = 0; j < b.length(); j++)
答案 1 :(得分:1)
在java string.charAt(string.length())
中将超出范围,因为字符串为0索引,因此最后一个字符位于string.length() - 1
。
答案 2 :(得分:0)
从0开始索引字符串。您的第二个for循环设置为以b.length结束,该字符串将始终比该字符串的最高索引大1。将其更改为j&lt; b.length而不是。