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和\r\n,nextInt()方法只获取10就结束了
                        nextLine()是键盘录入字符串的方法,可以接收任意类型,但是他凭什么能获取一行呢?
                        通过\r\n,只要遇到\r\n就证明一行结束
                解决:①
                        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);

AJPFX简述Scanner类的特点的更多相关文章

  1. AJPFX简述Object类

    Object类是所有类的超类,所有类都拥有Object的方法.其中的toString.equals是对业务模型而言非常常用的方法.a)     toString方法当调用System.out.prin ...

  2. 第十三章 字符串 (四)之Scanner类

    一.Scanner简述 Scanner扫描器类本质上是由正则表达式实现的,可以接受任何能产生数据的数据源对象,默认以空白符进行分词(包括\n等),使用各种next方法进行扫描匹配,获取匹配的数据. 二 ...

  3. Scanner类

    Scanner类:用于获取用户的键盘输入 成员方法: public boolean hasNextXxx():判断是否某种类型的元素 public Xxx nextXxx():获取该元素 常用方法: ...

  4. java中scanner类的用法

    在Eclipse中编写程序时,如果我们的变量是需要手动输入的时候,我们就可以用到scanner类了. Scanner类,这是一个用于扫描输入文本的新的实用程序.由于任何数据都必须通过同一模式的捕获组检 ...

  5. c语言中的scanf在java中应该怎么表达,Scanner类。

    1 java是面向对象的语言 它没有像C语言中的scanf()函数,但是它的类库中有含有scanf功能的函数 2 java.util包下有Scanner类 Scanner类的功能与scanf类似 3 ...

  6. Java中Scanner类和BufferReader类之间的区别

    java.util.Scanner类是一个简单的文本扫描类,它可以解析基本数据类型和字符串.它本质上是使用正则表达式去读取不同的数据类型. Java.io.BufferedReader类为了能够高效的 ...

  7. Java用Scanner类获取用户输入

    用Java编写程序时,有些数据需要用户输入,这个时候需要调用java提供的Scanner类,这个类在包java.util下,比如求一个矩形的面积,简单的看一下用法: import java.util. ...

  8. Scanner类的使用

    Scanner类的使用 (接受键盘输入) java.util.Scanner是Java5的新特征,主要功能是简化文本扫描.这个类最实用的地方表现在获取控制台输入,其他的功能都很鸡肋,尽管Java AP ...

  9. Android(java)学习笔记97:Scanner类使用

    package cn.itcast_01; /* * Scanner:用于接收键盘录入数据. * * 前面的时候: * A:导包 * B:创建对象 * C:调用方法 * * System类下有一个静态 ...

随机推荐

  1. phpexcel导出后乱码或者是打不开文件必须修复的问题

    百度了一下找到了解决办法,只要在header前面加上ob_end_clean();这句代码,清除缓冲区,这样就可以了,完美的解决了我的问题

  2. bashdb bashdebug

    sudo  apt-get install bashdb bashdb  --debug 一.列出代码和查询代码类: l 列出当前行以下的10行 - 列出正在执行的代码行的前面10行 . 回到正在执行 ...

  3. Why is an 'Any CPU' application running as x86 on a x64 machine?

      It's likely that you linked some assemblies that are not Any CPU, but include native code (or are ...

  4. 利用JS判断当前来路域名并跳转到指定页面

    某网站绑定了多个域名,默认情况下访问这些域名的时候是指向网站的首页,也就是访问不同域名时看到的页面是一样的,现在需要访问不同域名时显示不同页面. 一般情况下,可以用子站绑定域名的方法来实现,访问不同的 ...

  5. html5--6-6 CSS选择器3

    html5--6-6 CSS选择器3 实例 学习要点 掌握常用的CSS选择器 了解不太常用的CSS选择器 什么是选择器 当我们定义一条样式时候,这条样式会作用于网页当中的某些元素,所谓选择器就是样式作 ...

  6. ssl原理及应用

    今天学习网络通信,看到使用ssl(Secure Sockets Layer)进行加密,由于对ssl只是有些概念上的了解,对于具体应用原理.过程和如何使用不慎了解,于是学习了一番,总结如下: 1. 为什 ...

  7. Linux Shell高级技巧(目录)

    为了方便我们每个人的学习,这里将给出Linux Shell高级技巧五篇系列博客的目录以供大家在需要时参阅和查找. Linux Shell高级技巧(一) http://www.cnblogs.com/s ...

  8. HBase之四--(2):spring hadoop 访问hbase

    1.  环境准备: Maven Eclipse Java Spring 2. Maven  pom.xml配置 <dependency> <groupId>org.apache ...

  9. iphone 在设置了initial-scale=1 之后,在设置滚动条之后,没有滑动效果的解决办法

    iphone在设置了initial-scale=1 之后,我们终于可以以1:1 的比例进行页面设计了. 关于viewport,还有一个很重要的概念是:iphone 的safari 浏览器完全没有滚动条 ...

  10. html meta标签使用

    HTML语言标准注释:meta标签是对网站发展非常重要的标签,它可以用于鉴别作者,设定页面格式,标注内容提要和关键字,以及刷新页面等等. Google在2009年就宣布在搜索算法中不再使用元关键词或者 ...