为什么扫描仪在没有/最后没有拿起我的年份变量?

时间:2017-10-14 17:09:21

标签: java java.util.scanner delimiter

用户输入格式为XX / XX / XXXX的日期,我使用分隔符来选择输入中的整数,但我无法弄清楚如何获取年份变量而不放置其他/在输入结束时。我该如何获得那一年变量?

提前致谢

u_v[:,:,:] = prev_frame[:,:,:] # Only where u_v[:,:] = black/(0,0,0) 

1 个答案:

答案 0 :(得分:2)

  

如何获得那一年变量?

您可以使用String.split()

String tokens[] = input.split("/");      //where input is a String
int month = Integer.parseInt(tokens[0]);
int day = Integer.parseInt(tokens[1]);
int year = Integer.parseInt(tokens[2]);

注意:您可以使用原始数据类型int而不是其包装类Integer

要回答您的问题,那是因为您指定的分隔符只是正斜杠。在Java中,默认情况下,换行符也是分隔符之一。但是,在重新定义分隔符时,它被省略了。

要解决此问题,请同时包含换行符:

Scanner input = new Scanner(System.in).useDelimiter("/|\\n");

你也可以删除你的while循环,只需:

int month = input.nextInt();
int day = input.nextInt();
int year = input.nextInt();