我试图从这样的输入中获取数字:
hello 10 4
hey 23 -5 21 304 -9
anotherone -2 -4 21
使用Java的Scanner
课程。
我目前的代码如下:
private void openConfigFile(String config) {
try {
this.configFile = new Scanner(new File(config));
} catch (Exception e) {
e.printStackTrace();
}
}
private ArrayList<Integer> getConfig(String component)
{
ArrayList<Integer> output = new ArrayList<Integer>();
try {
while (configFile.hasNext())
if (configFile.next().equals(component)) break;
while (configFile.hasNextInt()) {
output.add(configFile.nextInt());
}
} catch (Exception e) {
e.printStackTrace();
}
return output;
}
此代码不适用于具有负整数的行。我认为它将负号视为字符串而不是数字。
有没有简单的解决方法来解决这个问题而不会使代码复杂化?