java错误为:java.lang.ArrayIndexOutOfBoundsException:1
我已经安装了Gradle,正在尝试从文件中读取一些数据 文件是java错误为:java.lang.ArrayIndexOutOfBoundsException:1,java,string,io,Java,String,Io,我已经安装了Gradle,正在尝试从文件中读取一些数据 文件是 A; 1;2 B;2;3 C;4;5 H;5;6 . . . 我想在前5张唱片上做些特别的事情 InputStream inputFileStream = Main.class.getResourceAsStream("/inputFile.txt"); Scanner scanner = new Scanner(inputStream); int counter = 5;
A; 1;2
B;2;3
C;4;5
H;5;6
.
.
.
我想在前5张唱片上做些特别的事情
InputStream inputFileStream = Main.class.getResourceAsStream("/inputFile.txt");
Scanner scanner = new Scanner(inputStream);
int counter = 5;
while (scanner.hasNext()) {
String line = scanner.nextLine();
String[] array;
if(counter>=0)
{
array = line.split(";");
System.out.println(line);
// System.out.println("Hero is: "+array[0]+" "+array[1]+" "+array[2]);
counter--;
}
}
问题是
System.out.println("Hero is: "+array[0]+" "+array[1]+" "+array[2]);
我面临一个错误:
java.lang.ArrayIndexOutOfBoundsException: 1
我知道,这意味着我要求得到数组之外的值,
但我不知道为什么会这样?
我怎样才能修好它
对于下行投票者:我使用System.out.printlnarray-length
在错误行前后,但奇怪的是,当我有错误行时,没有打印任何内容?在第一次迭代中,数组大小只有1,因此数组[1]抛出ArrayIndexOutOfBoundsException 您需要调用System.out.printlnHero is:+array[0]++array[1]++array[2];在循环之外
InputStream inputFileStream = Main.class.getResourceAsStream("/inputFile.txt");
Scanner scanner = new Scanner(inputStream);
int counter = 5;
while (scanner.hasNext()) {
String line = scanner.nextLine();
String[] array;
if(counter>=0)
{
array = line.split(";");
System.out.println(line);
counter--;
}
}
System.out.println("Hero is: "+array[0]+" "+array[1]+" "+array[2]);
也许拆分只带来了一次回报。请尝试打印array.length以查看它实际拥有多少元素。这是一个过于乐观的分割,您认为该分割会发生什么情况。行?实际上,还要学习使用调试器,或者至少在代码中添加System.out.println行,以查看变量包含的内容以及问题的来源。你不应该需要我们来诊断那种问题。@RC。那只是意味着OP为这篇文章剪切了文件。。只是一个简单的。。。。至少这样做没有意义。在该文件中:d当我有错误行时,没有打印任何内容?:这强烈表明该行是空字符串。您的文件中有一个空行。