我从文件中提取数据。我在阅读文件时使用分隔符时遇到问题。
我的文件是这样订购的:
0 Name 0
1 Name1 1
结构是整数,制表符(\ t),字符串,制表符(\ t),另一个整数,然后是换行符(\ n)。
我尝试使用此问题中引用的复合分隔符: Java - Using multiple delimiters in a scanner
但是,当我运行以下代码时,我仍然收到InputMismatch异常:
while(readStations.hasNextLine()) {
327 tempSID = readStations.nextInt();
328 tempName = readStations.next();
329 tempLine = readStations.nextInt();
//More code here
}
它在上面代码的第二行调用此错误... 我不知道为什么,感谢帮助,谢谢。
当前输出对代码运行:
Exception in thread "main" java.util.InputMismatchException
...stuff...
at Metro.declarations(Metro.java:329)
答案 0 :(得分:1)
换行最有可能导致问题。试试这个
public class TestScanner {
public static void main(String[] args) throws IOException {
try {
Scanner scanner = new Scanner(new File("data.txt"));
scanner.useDelimiter(System.getProperty("line.separator"));
while (scanner.hasNext()) {
String[] tokens = scanner.next().split("\t");
for(String token : tokens) {
System.out.print("[" + token + "]");
}
System.out.print("\n");
}
scanner.close();
}
catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}
答案 1 :(得分:0)
我认为当扫描仪像这样分离输入时,你只能使用input.next()而不是下一个int:或保持相同的类型。