Java 无法理解获取ArrayIndexOutofBounds的原因异常:0,运行时错误
我不明白为什么会出现这个运行时错误。Java告诉我第17行是问题所在Java 无法理解获取ArrayIndexOutofBounds的原因异常:0,运行时错误,java,arrays,Java,Arrays,我不明白为什么会出现这个运行时错误。Java告诉我第17行是问题所在 import java.util.Scanner; public class whatIsWrong { public static void main(String[] args) { Scanner input = new Scanner(System.in); int size = 0; String[] names; names = new
import java.util.Scanner;
public class whatIsWrong {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int size = 0;
String[] names;
names = new String[size];
System.out.printf("%nEnter number of names desired names: ");
size = input.nextInt();
for(int i = 0; i < size; i++) {
System.out.printf("%nName #%d: ", i +1);
names[i] = input.nextLine();
}
}
}
import java.util.Scanner;
公共课出了什么问题{
公共静态void main(字符串[]args){
扫描仪输入=新扫描仪(System.in);
int size=0;
字符串[]名称;
名称=新字符串[大小];
System.out.printf(“%输入所需名称的名称数:”);
size=input.nextInt();
对于(int i=0;i
目前的问题很简单,就是初始化一个大小为0
的数组。在for循环中,您将获得新的大小,因此数组长度不等于该大小
需要在size=input.nextInt()行之后初始化数组
所以它应该是这样的:
import java.util.Scanner;
public class whatIsWrong {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int size = 0;
System.out.printf("%nEnter number of names desired names: ");
size = input.nextInt();
String[] names = new String[size];
for(int i = 0; i < size; i++) {
System.out.printf("%nName #%d: ", i +1);
names[i] = input.nextLine();
}
}
}
import java.util.Scanner;
公共课出了什么问题{
公共静态void main(字符串[]args){
扫描仪输入=新扫描仪(System.in);
int size=0;
System.out.printf(“%输入所需名称的名称数:”);
size=input.nextInt();
字符串[]名称=新字符串[大小];
对于(int i=0;i
简称:
更改size
的值不会影响数组names
的大小,即0
详细说明:
当name=新字符串[大小]时执行code>时,size的值为0
,因此字符串数组names
的大小为0
,即使size
之后更改,也不会更改names
的大小。因此它是一个空的数组。通过在for
循环的第一轮中访问名称[0]
,您假定它至少有一个元素。Move名称=新字符串[size]代码>行后size=input.nextInt()代码>投票结束,因为“这个问题是由一个无法再复制的问题或一个简单的印刷错误引起的。虽然这里可能有类似的问题,但这个问题的解决方式不太可能帮助未来的读者。”names=new String[size]代码>您声明的size=0代码>可能的副本谢谢您的帮助!不客气:)