用户正在以 XX/XX/XXXX 格式输入日期,我使用分隔符来挑选输入中的整数,但我无法弄清楚如何在不放置另一个/的情况下获取年份变量输入结束。我如何获取该年份变量?
提前致谢
package formatting_problem;
import java.util.Scanner;
public class DateFormatter {
public static void main(String[] args) {
Integer day = 0;
Integer month = 0;
Integer year = 0;
Integer test = null;
Scanner input = new Scanner(System.in).useDelimiter("/");
System.out.println("Enter a date in the format XX/XX/XXXX to be formatted to Month Day,Year");
while (input.hasNext()){
month = input.nextInt();
day = input.nextInt();
year = input.nextInt();
System.out.println();
}
最佳答案
How do I go about getting that year variable?
您可以只使用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();
关于java - 为什么扫描仪不会在末尾没有/的情况下获取我的年份变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46747199/