我正在尝试使用Scanner
以MM/DD/YYYY
格式从用户那里获取日期并使用分隔符/
来执行此操作,但只要用户输入数据申请不再继续。如果我只使用标准空格分隔符,它将会起作用。
Scanner scanner = new Scanner(System.in);
scanner.useDelimiter("/");
System.out.print("Birth Date (MM/DD/YYYY) ");
birthMonth = scanner.nextInt();
birthDay = scanner.nextInt();
birthYear = scanner.nextInt();
答案 0 :(得分:2)
您唯一的分隔符是/
而不是换行符。这意味着您必须在年后键入/
或添加换行符作为分隔符。
尝试
scanner.useDelimiter("[/\n]");
答案 1 :(得分:0)
您必须接受斜线和换行符,否则提示不会将控件返回给用户。
import java.util.Scanner;
public class Test {
public static void main( String[] args ) {
Scanner scanner = new Scanner( System.in );
scanner.useDelimiter( "[/\n]" );
System.out.print( "Birth Date (MM/DD/YYYY) " );
int birthMonth = scanner.nextInt();
int birthDay = scanner.nextInt();
int birthYear = scanner.nextInt();
scanner.close();
System.out.printf( "Day(%02d), Month(%02d), Year(%04d)%n", birthDay, birthMonth, birthYear );
}
}