我正在为一个学校项目工作,但其中一部分遇到了麻烦。我在记事本中有一个文本文件,其中包含有关NHL中每个团队的数据:

Washington Capitals
3.02
2.33
85.2
30.6
28.4
True
Dallas Stars
3.23
2.78
82.3
32.0
28.9
True
...


我试图将所有的双打放置在一个数组中,但我似乎无法弄清楚如何跳过所有包含字符串或布尔值的行。

这是我到目前为止的代码:

    double data[][] = new double[30][6];
    int indexRow = 0, indexCol = 0, tracker = 0;

    File file = new File(fileName);
    Scanner input = new Scanner(file);

    while(input.hasNext())
    {
        if(tracker == 0 || tracker == 6)
        {
            //skip line
            if(tracker == 6)
                tracker = 0;
        }
        data[indexRow][indexCol] = input.nextDouble();

        if(indexCol < 6) indexCol++;
        if(indexRow < 30 && indexCol % 6 == 0)
        {
            indexRow++;
            indexCol = 0;
        }
        tracker++;
    }


无论如何,是否只跳过包含字符串和布尔值的行?提前致谢。

最佳答案

您不能跳过一行,因为您需要先阅读它,以查看它是您想要的行还是废弃的行。使用您给定的格式,只要第一个字符是字母,就读该行的第一个字符,然后丢弃其余的行。如果第一个字符是数字,则保留该行。

07-27 21:38