我写了这段代码。我的目标是在char中写入字符串。 但是我收到了ArrayIndexOfBoundsException错误。
public class Charwork {
char[] letter;
int keepInt;
public Charwork()
{
letter = new char[keepInt];
}
public void copy(String nameToCoppy)
{
this.keepInt = nameToCoppy.length();
System.out.println(this.keepInt);
for(int x = 0; x < this.keepInt;x++)
{
letter[x] = nameToCoppy.charAt(x);
System.out.println(letter[x]);
}
}
}
答案 0 :(得分:0)
您的问题是您的数组是使用null或0的int实例化的。在获取字符串长度后,将构造函数中的一行移动到复制函数应该可以解决问题。
public Charwork()
{
}
public void copy(String nameToCoppy)
{
this.keepInt = nameToCoppy.length();
letter = new char[keepInt];
System.out.println(this.keepInt);
for(int x = 0; x < this.keepInt;x++)
{
letter[x] = nameToCoppy.charAt(x);
System.out.println(letter[x]);
}
}
答案 1 :(得分:0)
您在实例化长度为Charwork
的变量char[] letter
时创建了一个对象keepInt
- 但此时keepInt
为零,beacuse int是原始的,并使用默认的0值进行即时化。
然后,在copy
方法中,您更改keepInt
的值,但这无关紧要,因为数组char[] letter
已设置为长度为0.