检查空输入

时间:2014-10-10 03:16:48

标签: java file-io

我正在编写一个Java程序来逐行解析文本文件,其中包含数字列表。但是,并非所有行都包含数字。我想知道如何在没有数字的情况下跳过那些线。文本文件如下所示。

1 0 > 1 6 2 6 3 6
1 1 > 4 -1
1 2 > 8 -1
1 3 > 9 -1
1 4 > 1 -1 5 -1 6 -1
1 5 > 
1 6 > 7 -1 8 -1
1 7 > 
1 8 > 7 -1
0 9 >

我有for loop遍历每一行并处理>符号左侧的数字,但是,每当我到达>右边没有数字的行时,我获得NullPointerException

以下是我遇到问题的代码。当我尝试将子项添加到tokens[i]状态时会发生这种情况。

File file = new File("data.txt");
Scanner scanner = new Scanner(file);
HashMap<String, Integer> states = new HashMap<String, Character>(10);

while(scanner.hasNextLine()) {
    String line = scanner.nextLine();
    String[] tokens = line.split(" |>"); 

    for(int i = 3; i < line.length(); i++) {
        if(tokens[i] == null | tokens[i + 1] == null | tokens[i] == "")
            break;
        if(i % 2 != 0)
            tokens[1].children.add(states.get(tokens[i]));
    }
}

State是我创建的一个类,其中包含一个名为ArrayList的{​​{1}},我在其中添加了不同的状态

0 个答案:

没有答案