Scanner类中的next()和nextLine()方法

当我们从键盘输入时,通常会使用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).
结果为:
结果截图

原文地址:https://www.cnblogs.com/wangqilong/p/8279774.html