当我们从键盘输入时,通常会使用Scanner文本扫描器,当输入需要判断空格,tab键等无效字符时,next和nextLine()有不同的效果。
next()一定要读取到有效字符后才可以结束输入,对输入有效字符之前遇到的空格键、Tab键或Enter键等结束符,next()方法会自动将其去掉,只有在输入有效字符之后,next()方法才将其后输入的空格键、Tab键或Enter键等视为分隔符或结束符。既:next()查找并返回来自此扫描器的下一个完整标记。完整标记的前后是与分隔模式匹配的输入信息,所以next方法不能得到带空格的字符串。
nextLine()方法的结束符只是Enter键,即nextLine()方法返回的是Enter键之前的所有字符,它是可以得到带空格的字符串的。
package com.math.forth;
import java.util.Scanner;
/**
* Scanner中next()和nextLine()方法区别
* @author wql
*
*/
public class Math06_02 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("请输入字符串s1:");
String s1=sc.nextLine();
System.out.println("请输入字符串s2:");
String s2=sc.next();
System.out.println("----------------------------");
//打印出输入的字符串和其长度
System.out.println("nextLine()..."+s1+"长度:"+s1.length());
System.out.println("next()..."+s2+"长度:"+s2.length());
}
}
两个输入语句都输入“ abc ”(abc前后各两个空格,长度为7).
结果为: