Scanner学习资料

在这里插入图片描述
上图来自:Scanner类——获取用户输入的字符串
在这里插入图片描述
上图来自:【通俗易懂学JAVA】——Scanner对象中hasNext()与next(),nextLine()
在这里插入图片描述
上图来自:【通俗易懂学JAVA】——Scanner对象中hasNext()与next(),nextLine()
在这里插入图片描述
上图来自:Scanner类中next()、nextLine()、hasNext()、hasNextLine()等方法的区别与联系
在这里插入图片描述
上图来自:Scanner()类:next()方法与hasnext()方法与hasNextLine()方法

关于next()、nextInt()、nextdouble()、nextfloat()、nextInt()等语句不吃回车换行符的问题:

可见Java中的回车(\r)和换行(\n)中:
在这里插入图片描述
Scanner输入注意事项中:
在这里插入图片描述

关于什么时候需要单独加 nextLine()去处理没有吃掉的\n字符的问题:
经验证,如String next(),double nextdouble() , float nextfloat() , int nextint() 等(设为A方法)与nextline()连用时都存在这个问题,解决的办法是:在每一个 next()、nextdouble() 、 nextfloat()、nextint() 等语句之后加一个nextline()语句,将被A方法没有吃掉的\n字符过滤掉。即只在nextLine() 方法与其他 nextxxx()或next()方法连用时,且是循环输入(while循环)时,会有\n吃不掉的问题。可单独加nextLine() 吃掉 \n字符。2022.5.9 22:17

可见博客【通俗易懂学JAVA】——Scanner对象中hasNext()与next(),nextLine()
在这里插入图片描述
调试代码如下:

    public static void test2() {
        Scanner sc = new Scanner(System.in);
        while (sc.hasNext()) {
            String a = sc.nextLine();
            int k = sc.nextInt();
            //即有sc.nextLine(),又有sc.nextInt()方法调用,
            //必须加上下面的sc.nextLine();来吃掉\n,否则下一轮输入时有问题,
            //如果没有while循环,即输入一轮就结束了,可以不用管
            //sc.nextLine();
            System.out.println(a);
            System.out.println(k);
        }
    }
    public static void test5() {
        Scanner sc = new Scanner(System.in);
        while (sc.hasNext()) {
            int k = sc.nextInt();
            //即有nextInt()"指k = sc.nextInt()",又有nextLine()"指a = sc.nextLine()"方法调用,
            //必须加下面的sc.nextLine();来吃掉\n,否则会报异常
            //sc.nextLine();
            String a = sc.nextLine();
            System.out.println(k);
            System.out.println(a);
        }
    }

如果以上调试代码while循环体中是nextInt()、nextInt()连用,或者next()、next()连用,或者是nextInt()、next()方法连用是没有问题的。时间关系可以自己尝试。

由于时间关系,没有总结,记录下自己看的介绍Scanner知识的博客,以备后面使用,以上内容也来自下面博客:
这篇博客介绍的非常详细:Scanner类中next()、nextLine()、hasNext()、hasNextLine()等方法的区别与联系
Scanner类——获取用户输入的字符串
【通俗易懂学JAVA】——Scanner对象中hasNext()与next(),nextLine()
Scanner()类:next()方法与hasnext()方法与hasNextLine()方法
java.util.Scanner读取换行符问题
scanner读取带空格字符串_Java——Scanner类(读取输入)
Java中的回车(\r)和换行(\n)
Scanner的close()方法
对scanner.close方法的误解以及无法补救的错误
Scanner的close()方法的使用以及Scanner应该如何关闭
Scanner中nextLine()方法和next()方法的区别
java中Scanner类的next()与nextLine()区别
Scanner类中next()方法和nextLine()方法的区别
Scanner类中next()和nextLine()的区别
Scanner类中next()方法和nextLine()方法的区别
Scanner中next和nextLine方法的区别
Scanner对象中next()和nextLine()方法的区别
Scanner类的next() 和nextLine()的区别
Java基础语法16-使用Scanner类获取输入
Java获取键盘输入(使用Scanner类获取键盘输入)
Java语言学习-Scanner 类,怎样从键盘获取输入
Scanner输入注意事项
当使用Scanner类输入时应该注意的地方
Scanner的hasnext和hasnextline
java中next 、hasNext,nextLine、hasNextLine的区别
Java Scanner和循环
Scanner,循环
本人对于Java中Scanner类的输入判断方法的误解
Scanner获取用户输入
Java Scanner 怎么判断用户输入是否为数字
[Java]知识点篇二——Scanner输入
解决Java中 while(Scanner.hasNext())一直为死循环的问题
【java基础】解决Java中 while(Scanner.hasNext())一直为死循环的问题!
Java Scanner对象中hasNext()与next()方法的使用
Java后端_Scanner中next()、nextLine()、hasNext()、hasNextLine()补充知识
Scanner()类:next()方法与hasnext()方法与hasNextLine()方法
2022.5.8 22:16 sh ylxy
更新 2022.5.9 22:17

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值