对于第一个for循环:for(int i=0;i<=name.length();i++),我得到了正确的输出,但不知道为什么这个循环:for(int i=name.length();i>=0;i--)没有得到任何输出。在执行时,我收到一个错误,说索引超出了范围。
我检查了错误here,但我不明白。
public class runner {
public static void main(String[] args) {
String name = "java";
System.out.println(".length method()" + name.length());// executing
// .length()
// method
System.out.println(".charAt method()" + name.charAt(5));
for (int i = 0; i <= name.length(); i++) {
System.out.println(name.charAt(i));
}
for (int j = name.length(); j >= 0; j--) {
System.out.println(name.charAt(j));
}
}
}输出
j
a
v
a发布于 2013-08-14 17:34:15
问题是i<=name.length();
您需要i<name.length();,因为长度超出了字符串中包装字符数组的界限。
出于同样的原因,您需要将第二个For循环更改为
for(int j=name.length()-1 ;j>=0;j--){发布于 2013-08-14 17:34:48
数组是0索引的,将<=更改为<。
每次你打电话时,你都会收到那个错误
name.charAt(name.length())发布于 2013-08-14 17:35:56
没有绑定异常,因为Java数组索引从零开始。例如,如果数组的长度= 5,则第一个元素的索引将为0,最后一个元素的索引将为4 (length - 1)。
改变你的路线
for(int i=0;i<=name.length();i++){至
for(int i=0;i<name.length();i++){和线
for(int j=name.length();j>=0;j--){至
for(int j=name.length()-1;j>=0;j--){https://stackoverflow.com/questions/18238458
复制相似问题