我希望将以下字符串存储到数组中,但它会抛出ArrayOutOfBound Exception。
public static void main(String[] args) {
// TODO Auto-generated method stub
char[] arr = {};
String str = "Hello My Name is Ivkaran";
for (int i = 0;i < str.length(); i++){
System.out.println(str.charAt(i));
arr[i] = str.charAt(i);
}
}
答案 0 :(得分:5)
您已使用此行声明了一个长度为0的数组:
char[] arr = {};
要为该数组指定任何内容,必须将其初始化为某个非零大小。在这里,看起来你需要它与字符串的大小相同。
String str = "Hello My Name is Ivkaran";
char[] arr = new char[str.length()];
您也可以在String
上致电toCharArray()
以获取已复制到其中的内容的char[]
。
char[] arr = str.toCharArray();
答案 1 :(得分:3)
Java中的数组不是动态的。使用arraylist或创建具有维度的数组:
char[] arr = new char[str.length()]
同时将此行移至
下方String str = "Hello My Name is Ivkaran";
然后按原样继续。
答案 2 :(得分:0)
这样做:
String str = "Hello My Name is Ivkaran";
char[] arr = str.toCharArray();