我正在编写一个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}},我在其中添加了不同的状态