Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java错误为:java.lang.ArrayIndexOutOfBoundsException:1_Java_String_Io - Fatal编程技术网

java错误为:java.lang.ArrayIndexOutOfBoundsException:1

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;

我已经安装了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;

         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当我有错误行时,没有打印任何内容?:这强烈表明该行是空字符串。您的文件中有一个空行。