还想补充一点,我尝试了这个,在分隔符之后创建字符串(如下所示),并且只是尝试使用nextInt捕获INT值.....仍然做同样的事情,并且在初始化后没有任何反应日期条目....
Scanner keyboard = new Scanner(System.in);
keyboard.useDelimiter("/");
String month = keyboard.next();
String day = keyboard.next();
String year = keyboard.next();
int monthi = Integer.parseInt(month);
int dayi = Integer.parseInt(day);
int yeari = Integer.parseInt(year);
System.out.println(monthi);
System.out.println(dayi);
System.out.println(yeari);
答案 0 :(得分:1)
将分隔符更改为还包含换行符:
keyboard.useDelimiter("[/\n]");
通过这种方式,您的上一次.next()
调用将需要解析。您还可以使用keyboard.hasNext()
来确定是否还有任何内容需要解析(如果没有,您可能需要处理该情况,因为输入的是无效日期)。
您的代码在当前状态下永远运行的原因是,您使用了3 next()
次调用,但只提供了2 \
次,当您添加第3 {{1}时,您的程序将会终止它以前的方式,但是通过在要分隔的事物列表中添加换行符(\
字符),最后一个\n
调用将在最后一个斜杠和换行符之间拉出什么。