Scanner学习资料

Scanner学习资料,第1张


上图来自: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

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/906354.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-15
下一篇 2022-05-15

发表评论

登录后才能评论

评论列表(0条)

保存