Java文件读取器 - 读取字符串后的int
问题描述:
嗨我正在创建一个从文件中读取数据(见下面的格式),其名称以','分隔的方法是3个整数。Java文件读取器 - 读取字符串后的int
当方法被调用的名称输出很好,但一旦我后添加一个整数,它产生的错误 - java.util.NoSuchElementException
有人能告诉我,我要去哪里错了。谢谢。
UPDATE 感谢下面的帖子,问题解决了!
答
当你调用String name = in.nextLine();
,将加载完整产品线,即“名,5,6,1970”,并再次呼吁int DD = in.nextInt();
会发现什么,会抛出异常
因此,尝试,而不是这样的:
public void readFile() {
while(in.hasNext()) {
String line = in.nextLine();
String[] values = line.split(",");
String name = values[0];
int DD = Integer.parseInt(values[1]);
int MM = Integer.parseInt(values[2]);
int YYYY = Integer.parseInt(values[3]);
System.out.println(name + DD + MM + YYYY);
}
}
答
尝试以下方法:
String line = "name,5,6,1970"; //the whole line
String[] parts = line.split(",");
String name = parts[0]; //name
int DD = Integer.parseInt(parts[1]); //5
int MM = Integer.parseInt(parts[2]); //6
int YYYY = Integer.parseInt(parts[3]); //1970
答
另一种替代方法是使用扫描仪
while(in.hasNext()) {
Scanner sc = new Scanner(in.nextLine());
sc.useDelimiter(",");
String name = sc.next();
int DD = sc.nextInt();
int MM = sc.nextInt();
int YYYY = sc.nextInt();
System.out.println(name + DD + MM + YYYY);
}