字符串索引超出范围:n

时间:2012-01-26 15:50:13

标签: java string validation indexing range

我每次执行此代码时都会遇到一些问题,这会给我一个错误 字符串索引超出范围:'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++;
        }
    }
}

它基本上是一个验证代码,我试图做没有例外和东西(仍然在学习的过程:))

任何帮助将不胜感激 非常感谢。

3 个答案:

答案 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而不是。