字符串索引超出范围:n

我每次执行它时都会遇到这个代码有点问题它给我一个错误字符串索引超出范围:’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((d90)||(d122)) { counter++; } } } 

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

非常感谢任何帮助。

迭代字符串时使用< ,而不是<= 使用<= ,当j等于字符串的长度时,会出现越界错误。 请记住,字符串中的字符从零开始编制索引。

 for(int j = 0; j < b.length(); j++) 

在java中, string.charAt(string.length())将超出范围,因为字符串为0索引,因此最后一个字符位于string.length() - 1

字符串从0开始编制索引。您的第二个for循环设置为以b.length结束,该字符串将始终比该字符串的最高索引大1。将其更改为j