我需要一些帮助来确定此代码抛出ArrayIndexOutOfBoundsException
:
public class palindrome
{
public static void main(String[] args)
{
String name = "Michael Knight";
char ch[] = name.toCharArray();
int size = name.length();
for(int i = 0; i<size; i++) {
//System.out.println(size);
System.out.println(ch[i]);
for(int j=size; j>=0; j--) {
System.out.println(ch[j]);
}
}
}
}
答案 0 :(得分:4)
ch[j]
时{p> j==size
超出范围,因为索引从0变为大小-1。
应该是:
for(int j=size-1; j>=0; j--){
System.out.println(ch[j]);
}
答案 1 :(得分:1)
在for
循环中,j
从索引j=size
开始,由于数组从0
开始到size - 1
,因此已经超出数组边界,因此ch[j]
会抛出ArrayIndexOutOfBoundsException
。
反向循环的正确方法应该是:
for(int j= (size - 1); j>=0; j--){
System.out.println(ch[j]);
}
答案 2 :(得分:0)
尝试这样;
public class palindrome{
public static void main(String []arg$){
String name = "Michael Knight";
char ch[] = name.toCharArray();
int size = name.length();
for(int i = 0; i<size; i++){
//System.out.println(size);
System.out.println(ch[i]);
for(int j=size-1; j>=0; j--){
System.out.println(ch[j]);
}
}
}
}
答案 3 :(得分:0)
for(int j=size; j>=0; j--) {
System.out.println(ch[j]);
j =大小超出范围。 数组的最后一个索引是size-1。 在这种情况下,j应该用数组的最后一个索引进行初始化。