zoukankan      html  css  js  c++  java
  • AJPFX简述Scanner类的特点

           hasNextInt() :判断是否还有下一个输入项,其中Xxx可以是Int,Double等。如果需要判断是否包含下一个字符串,则可以省略Xxx
            nextInt(): 获取下一个输入项。Xxx的含义和上个方法中的Xxx相同,默认情况下,Scanner使用空格,回车等作为分隔符
                    
                    public static void main(String[] args) {
                            Scanner sc = new Scanner(System.in);                //创建键盘录入对象
                            if(sc.hasNextInt()) {                                //判断键盘录入的是否是int类型的数据
                                    int i = sc.nextInt();                        //键盘录入的数据存储在i中
                                    System.out.println(i);
                            }else {
                                    System.out.println("输入的类型错误");
                            }
            
                    }
            
            bug问题:先用nextInt()接收int类型,再用nextLine()接收字符串的时候,会导致nextLine() 直接把回车接收到了, nextLine 不能继续接收字符串了
                    1)先获取一个数值后,再创建一个新的键盘录入对象获取字符串。
                    2)把所有的数据都先按照字符串获取,然后要什么,你就对应的转换为什么。(后面讲)
                    出现问题代码:
                            Scanner sc = new Scanner(System.in);
                            System.out.println("请输入第一个整数:");
                            int i = sc.nextInt();                                //先用nextInt()接收int类型
                            System.out.println("请输入第二个字符串:");
                            String line2 = sc.nextLine();                        //再用nextLine()接收字符串
                            System.out.println("i = " + i + ", line2 = " + line2);        //line2不等着你去接收 就执行了这句输出语句
                    为什么出现问题呢?
                            nextInt()是键盘录入整数的方法,当我们录入10的时候
                            其实在键盘上录入的是10和 ,nextInt()方法只获取10就结束了
                            nextLine()是键盘录入字符串的方法,可以接收任意类型,但是他凭什么能获取一行呢?
                            通过 ,只要遇到 就证明一行结束
                    解决:①
                            Scanner sc = new Scanner(System.in);
                            System.out.println("请输入第一个整数:");
                            int i = sc.nextInt();                                //先用nextInt()接收int类型
                            System.out.println("请输入第二个字符串:");        
                            Scanner sc2 = new Scanner(System.in);                //再创建一个新的键盘录入对象
                            String line = sc2.nextLine();                        //再用新的键盘录入对象的nextLine()接收字符串
                            System.out.println(i);
                            System.out.println(line);

                          ②(下面这种方案 明天就讲 我先写在这里 不懂的话 明天学了就明白了)
                            Scanner sc = new Scanner(System.in);
                            System.out.println("请输入第一个整数:");
                            String lin = sc2.nextLine();                        //先用nextLine()接收一个数字型的字符串  比如 "100"
                            int i = Integer.parseInt(lin);
                            System.out.println("请输入第二个字符串:");                
                            String line = sc2.nextLine();                        //再用新的键盘录入对象的nextLine()接收字符串
                            System.out.println(i);
                            System.out.println(line);

  • 相关阅读:
    html meta标签使用总结
    HTTP与HTTPS握手的那些事
    JS windows.open打开窗口并居中
    什么是响应式web设计
    phpstorm2017 激活方法
    php与mysql 绑定变量和预定义处理
    php和mysql数据库防SQL注入的有效解决办法
    如何高效率的写一个不会重复出现的随机数
    php将IP地址转换为真实地址的方法
    PHP程序员要掌握哪些技术
  • 原文地址:https://www.cnblogs.com/AJPFX/p/10891227.html
Copyright © 2011-2022 走看看