Java中Scanner.useDelimiter( )方法使用

     在Java语言中,格式化输入是通过类java.util.Scanner来完成的。默认情况下,Scanner是使用“空白”作为分隔符将输入分解为标记,然后使用它所提供的不同的next方法将得到的标记转换为不同的类型的值。

Scanner scan = new Scanner(System.in);
		System.out.print("请输入:");
		String year = scan.next();
		System.out.printf("%s",year);

效果:


由于Scanner对象将首先跳过输入流开头的所有空白分隔符,然后对输入流中的信息进行检查,直到遇到空白分隔符为止;因此输入数据:this is a test;空白后面的字符:is a test不会显示输出来。


那如何将含有空格的数据输出呢?

这时就需要用Scanner.useDelimiter( )方法,可以将分隔符号修改为"回车",或者其他字符。

useDelimiter( )方法用法如下

	//useDelimiter("\n"); //“\n”换行符(回车)作为输入的分隔符
				Scanner scan = new Scanner(System.in).useDelimiter("\n");
				System.out.print("请输入:");
				String year = scan.next();
				System.out.printf("%s",year);

效果


可以用useDelimiter()方法,输入可以一起输入年月日

	Scanner scan = new Scanner(System.in).useDelimiter("\\D");// 匹配非数字
		System.out.print("请输入当前日期(年-月-日):");
		int year = scan.nextInt();
		int month = scan.nextInt();
		int date = scan.nextInt();
		scan.close(); // 执行关闭

效果:




版权声明:本文为hlx20080808原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。