使用正斜杠作为扫描仪分隔符

时间:2011-09-28 17:34:25

标签: java java.util.scanner

我正在尝试使用ScannerMM/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();

2 个答案:

答案 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 );
        }
}