您好我正在创建一个从文件中读取数据的方法(请参阅下面的格式),其名称以','分隔,为3个整数。
当调用该方法时,名称输出正常但是一旦我在其后面添加一个整数,就会产生错误 - java.util.NoSuchElementException
有人能告诉我哪里出错了。谢谢。
UPDATE 感谢以下帖子,问题解决了!
答案 0 :(得分:1)
另一种选择是使用扫描仪
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);
}
答案 1 :(得分:0)
当你致电String name = in.nextLine();
时,它会加载完整的行,即" name,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);
}
}
答案 2 :(得分:0)
尝试以下方法:
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