Scanner类中next()和hasNext();nextLine()和hasNextLine()获取用户输入

 

在获取用户输入的内容时,我们会使用next()以及nextLine()。同时分别会用hasNext()以及hasNextLine()进行判断。

 
 
 

next():获取并返回 “空格/换行” 之前的有效字符。此外,next()在读取输入后将光标放置在同一行中。

ps:next()在获取并返回有效字符之前不会结束输入。
import java.util.Scanner;

public class Scanner_Test {
    public static void main(String[] args) {
    //    实例化Scanner对象,获取用户输入
        Scanner scanner = new Scanner(System.in);
    //    通过next()获取用户输入
        System.out.println("通过next()获取用户输入");
        String s = scanner.next();
    //    输出结果
        System.out.println("输入的值为"+s);
    //    关闭扫描器
        scanner.close();
    }
}

控制台结果:

通过next()获取用户输入
			//输入空格+换行
			//输入换行
ab   cd
输入的值为ab

Process finished with exit code 0

 
 

hasNext():扫描到 “空格/换行” 之前的有效字符后返回ture。hasNext()通常在使用next()进行判断。

ps:hasNext()在扫描到有效字符前不会结束输入——只能返回true
import java.util.Scanner;

public class Scanner_Test {
    public static void main(String[] args) {
    //    实例化Scanner对象
        Scanner scanner = new Scanner(System.in);
    //    在通过next()方法获取用户输入之前,使用hasNext()判断是否具有数据
        System.out.println("使用hasNext()判断是否具有数据");
        if (scanner.hasNext()){
        //    输出用户输入数据
            String s = scanner.next();
            System.out.println(s);
        }else if (!scanner.hasNext()){
            System.out.println("用户什么也没有输入");
        }
    //    关闭扫描器
        scanner.close();
    }
}

控制台结果:

使用hasNext()判断是否具有数据
			//空格+换行
 			//换行
 r  rrr
r

Process finished with exit code 0



nextLine():获取并返回 “换行” 前的输入,可以获取空格。nextLine()读取输入后,会将光标定位在下一行。

ps:nextLine()在扫描到换行后会立刻结束输入
import java.util.Scanner;

public class Scanner_Test {
    public static void main(String[] args) {
    //    实例化Scanner对象
        Scanner scanner = new Scanner(System.in);
    //    通过nextLine()获取输入
        System.out.println("通过nextLine()获取输入");
        String nextLine = scanner.nextLine();
    //    输入获取的内容
        System.out.println("你输入的内容为"+nextLine);
    //    关闭扫描仪
        scanner.close();
    }
}

控制台结果:

通过nextLine()获取输入
						//空格+换行
你输入的内容为

Process finished with exit code 0

 
 

hasNextLine():扫描到 “换行” 后结束输入并返回true。hasNextLine()通常在使用nextLine()时进行判断。

import java.util.Scanner;

public class Scanner_Test {
    public static void main(String[] args) {
    //    实例化Scanner对象
        Scanner scanner = new Scanner(System.in);
    //    在使用nextLine()获取输入之前,通过hasNextLine()判断是否具有内容
        System.out.println("通过hasNextLine()判断是否具有输入");
        if (scanner.hasNextLine()){
        //    输出结果
            String s = scanner.nextLine();
            System.out.println("你的输入为"+s);
        }
    //    关闭扫描仪
        scanner.close();

    }
}

控制台结果:

通过hasNextLine()判断是否具有输入
 				//空格+换行
你的输入为 

Process finished with exit code 0

 
 

总结:

next()和nextLine()的区别:

1、next()无法获取空格,nextLine()可以获取空格
2、next()在获取有效字符前无法结束输入,nextLine()在扫描到换行符之后就可以结束输入

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值