Scanner类详解

默认情况下,Scanner以空格和换行(空格键、Tab键、Enter键)作为分隔符。

1. next()方法k可以获取任意有效字符。next()方法以及形如nextXxx()的方法会忽略有效字符前的空格和回车,以空格和换行作为结束符,读取到有效字符后的空格和换行前结束,这就决定了它们不能得到带有空格的字符串。next()的返回值类型是String,nextXxx()的返回值是相应的基本数据类型。

2. nextXxx()方法的功能就是将输入的字符串转化为相应的基本数据类型,如果不能转换就抛出java.util.InputMismatchException异常.

System.out.println(scanner.nextDouble());
System.out.println(scanner.nextBoolean());
System.out.println(scanner.nextInt());
System.out.println(scanner.nextInt());

3.  nextLine()方法只识别Enter键作为结束,也就是说它获取回车键前的所有字符,包括空格。nextLine()方法的返回值类型是String,可以得到带空格的字符串。

int i = 0;
String temp;
while(scanner.hasNext()){
temp = scanner.nextLine();
i++;
System.out.println("获取的第"+i+"个值是:"+temp);
}

4. 由于next(),nextXxx() 和 nextLine() 的结束符不同,所以在混合使用时,要注意处理,防止出错。

注意:nextXxx()过滤掉了前面的空格;nextLine()读取到了前面遗留下来的空格。

5、

 

 ############################################################################################

1、next方法。获取一个字符串。获取单词。一般与hasNext联合使用。需要添加退出条件,字符串比较退出

(1)如果最开始的输入是空格或回车,那么将会被过滤掉。

(2)从第一个有效字符(就是非空格和回车的任何字符)开始,直到遇到第一个空格或回车,这区间内的字符串就是nex方法返回的值。

(3)next方法的结束符是回车,也就是说直到遇到回车键时才结束掉输入阻塞。

 

2、nextBye,nextShort,nextInt,nextLong,nextFloat,nextDouble,nextBoolean,nextBigInteger,nextBigDecimal。与对应hasNextXxx方法对应。

 

(1)如果最开始的输入是空格或回车,那么将会被过滤掉。

 

(2)从第一个有效字符(就是非空格和回车的任何字符,而且还必须是对应的数据类型)开始,直到遇到第一个空格或回车,这区间内的数据就是对应的nexXxx方法返回的值。

 

(3)next方法的结束符是其他类型的数据才结束掉输入阻塞。回车停止不了的。回车前必须有其他数据类型的字符。

退出条件需要添加,或者输入不合法数据。

 

3、nextLine方法与hasNextLine方法。需要添加退出条件,字符串比较的退出条件。这两个方法作用是可以按行获取数据,即以行为单位,那么最好用字符串变量来接受一行的输入。

#####################################

Scanner into = new Scanner(System.in);

while(into.hasNextLine()){

String str = into.nextLine();

if(str.equals("#end#"))

break;

............

...........

}

##################################

4、

5、

原文地址:https://www.cnblogs.com/igoodful/p/9619302.html