gpt4 book ai didi

java - 我收到数组越界异常,但我不知道为什么会发生错误

转载 作者:行者123 更新时间:2023-12-02 08:58:15 25 4
gpt4 key购买 nike

我想将字符串存储到二维数组并打印该数组,但我得到了数组索引越界异常,但我不知道这里出了什么问题有人可以帮助我找到我的代码中出了什么问题吗.

这是我尝试过的代码,

public static void main(String[] args) {
Scanner sc= new Scanner (System.in);
System.out.println("Enter the string");
String str=sc.next();
char arr[][]=new char[5][5];
char a[]=str.toCharArray();
int l=a.length;
int k=0;
for(int i=0;i<5;i++){
for(int j=0;j<5;j++){
arr[i][j]=a[k];// this is the place where the error is occurred.
k++;
}
}
for(int i=0;i<5;i++){
for(int j=0;j<5;j++){
System.out.print(arr[i][j]+" ");
}
System.out.println();
}
}
}
The error iam getting is,
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 24
at try2.Try2.main(Try2.java:27)

最佳答案

您需要检查 k 是否超过给定输入的长度,然后不要将字符添加到数组中并打破循环,检查下面的代码,

public static void main(String args[]){
Scanner sc= new Scanner (System.in);
System.out.println("Enter the string");
String str=sc.next();
char arr[][]=new char[5][5];
char a[]=str.toCharArray();
int l=a.length;
int k=0;
for(int i=0;i<5;i++){
for(int j=0;j<5;j++){
if(k != l) {
arr[i][j]=a[k];// this is the place where the error is occurred.
k++;
}else {
break;
}
}
}
for(int i=0;i<5;i++){
for(int j=0;j<5;j++){
System.out.print(arr[i][j]+" ");
}
System.out.println();
}
}

关于java - 我收到数组越界异常,但我不知道为什么会发生错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60359846/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com