Scanner中next()、nextInt()、nextLine()、hasNext()、hasNextInt()的使用方法及注意事项

目录

1、next()、nextInt()、nextLine()的使用方法及区分

2、循环时如何使用hasNext方法

3、用hasNextInt()作为判断下一个输入是否为数字需要配合next()方法使用


1、next()、nextInt()、nextLine()的使用方法及区分

三者简单定义

next():此方法遇见第一个有效字符(非空格,非换行符)时,开始扫描,遇到第一个分隔符或结束符(空格或换行符)时,结束扫描,获取扫描到的内容,即获得第一个扫描到的不含空格、换行符的单个字符串。如下例:

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("读入一个字符串:");
        String s = sc.next();
        System.out.println(s);
    }

 结果:


nextInt():此方法只读取数值,不会读取空格和换行符,当我们用此方法读取后,再用nextLine()方法读取,会读取到剩余的空格或换行符,如下例:


nextLine():此方法会扫描到一行内容并作为一个字符串而被获取到,如果要读取带有空格的一串字符串,需要用此方法,如下例:

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("读入第一个字符串:");
        String s  = sc.next();
        System.out.println(s);
        System.out.println("读入第二个字符串:");
        s = sc.nextLine();
        System.out.println(s);
    }

 结果:

解决方法:只需在sc.next()后面加上一个sc.nextLine()即可消除该回车,如下:

 结果:


例:当你输入一串带空格的字符串,敲下回车后,若最开始碰到sc.next(),sc.next()只会读取第一个不是空格的单词。例如下例,当sc.next读完hello后,读取的cursor是在空格前,导致读取的nextLine长度是6。


2、循环时如何使用hasNext方法

遇到hasNext()时,Scanner会阻塞,等待用户输入,等你输入后返回true,若没有,会一直阻塞等待用户输入

如下代码,你需要先先输入,才会进入while循环,才会显示“请输入”

当我们想退出用hasNext做条件的while循环时,方法一是在控制台手动输入Ctrl+Z;方法二while(!sc.hasNext("#")) 约定当一行输入 # 时退出,如下:


3、用hasNextInt()作为判断下一个输入是否为数字需要配合next()方法使用

hasNextInt()函数大体意思表示scanner当前的标记的输入是否为int,并不会自动的移动标记。

例如实现一个判断当前输入是否为数字,不是的话提示请输入数字,因为该函数不会自动的移动标记,所以就会死循环输出“请输入数字”,如下代码

要实现hasNextInt()的读取的标记位置的改变,可以用sc.next()移动

解决代码:


该笔记参考自博主:weixin_41262453

仅供自己学习使用

  • 25
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
nextint和hasnextintScanner的两个方法。nextint用于读取下一个整数输入,而hasnextint用于检查是否有下一个整数输入。 在使用Scanner类时,可以通过以下方式使用nextint和hasnextint方法: 1. 创建Scanner对象: Scanner scanner = new Scanner(System.in); 2. 使用nextint方法读取下一个整数输入: int num = scanner.nextInt(); 3. 使用hasnextint方法检查是否有下一个整数输入: boolean hasInt = scanner.hasNextInt(); 需要注意的是,nextint方法只会读取整数部分,而不会读取换行符。而hasnextint方法则用于判断是否有下一个整数输入。 举个例子,假设输入为"6 5",则使用上述代码后的输出结果为: 6 true 5 其,第一个输出为读取的第一个整数6,第二个输出为hasnextint方法的返回值,表示是否有下一个整数输入,第三个输出为读取的第二个整数5。 希望以上解答能够帮到你! #### 引用[.reference_title] - *1* [[2020.4.1]nextLine、nextInt、next、hasNext、hasNextInt的用法](https://blog.csdn.net/weixin_44683593/article/details/105256876)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [Javanext()、hasNext()、nextInt()和nextLIne()的使用方法](https://blog.csdn.net/weixin_67908168/article/details/129641105)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [Scanner.nextIntScanner.hasNextInt](https://blog.csdn.net/dd_370481/article/details/109054432)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值