Java 在for循环的第一行之后split()不工作

Java 在for循环的第一行之后split()不工作,java,for-loop,split,Java,For Loop,Split,运行此代码段时: for(int i=0; i<np; i++){ giver=f.readLine(); String[] numbers=f.readLine().split("\\s"); System.out.println(giver+" "+numbers[0]+" "+numbers[1]); 我是Java新手,不知道自己做错了什么。我们将非常感谢您的帮助。多谢各位 编辑:输入的格式如下 amy 600 5 jane 4

运行此代码段时:

for(int i=0; i<np; i++){
        giver=f.readLine();
        String[] numbers=f.readLine().split("\\s");
        System.out.println(giver+" "+numbers[0]+" "+numbers[1]);
我是Java新手,不知道自己做错了什么。我们将非常感谢您的帮助。多谢各位

编辑:输入的格式如下

amy 
600 5 
jane 
477 9 
clara 
599 3

那么,你读林贝斯的书太多了。
确保没有超过行数。

尝试此循环以了解发生了什么:

for(int i=0; i<np; i++){
        giver=f.readLine();
        String assumedNumbers = f.readline();
        try {
            String[] numbers =f.readLine().split("\\s");
            System.out.println(giver+" "+numbers[0]+" "+numbers[1]);
        }
        catch ( ArrayIndexOutOfBoundsException e ) {
            System.out.println( "INVALID NUMBERS LINE '" + assumedNumbers + "'" );
            throw( e );
        }
}

对于(int i=0;i使用以下修改的代码

for(int i=0; i<np; i++){
        giver=f.readLine();
        String[] numbers=giver.split("\\s");
        System.out.println(giver+" ");
        for(String s:numbers)  //inhance for loop
        {
            System.out.println(" "+s);  
        }
}

for(int i=0;它表示您有一行正在读取,您假设该行至少有两个由空格分隔的数字,并且没有2个值。文件末尾是否有一个换行符?这似乎是一个空行,
split()
在这种情况下,调用将返回长度为1的数组。您能添加输入数据和np值吗?如果没有编辑器添加输入数据,很难知道发生了什么。谢谢。解决了。谢谢:)。这是输入问题,而不是实际的代码问题。
for(int i=0; i<np; i++){
        giver=f.readLine();
        String[] numbers=giver.split("\\s");
        System.out.println(giver+" ");
        for(String s:numbers)  //inhance for loop
        {
            System.out.println(" "+s);  
        }
}