当前位置: 移动技术网 > IT编程>开发语言>Java > AJPFX简述Scanner类的特点

AJPFX简述Scanner类的特点

2019年05月20日  | 移动技术网IT编程  | 我要评论

       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);

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网