Scanner对象

  • 之前我们学的基本语法中我们并没有实现程序和人的交互,但是Java给我们提供了这样一个工具类,我们可以获取用户的输入。Java.util.ScannerJava5的新特征,我们可以通过Scanner类来获取用户的输入。

  • 基本语法:

 Scanner s = new Scanner(System.in);
  • 通过Scanner类的next()nextLine()方法获取输入的字符串,在读取前我们一般需要用 hasNext()hasNextLine()判断是否还有输入的数据。

    • next():

      • 一定要读到有效字符后才可以结束输入。

      • 对输入有效字符之前遇到的空白,next()方法会自动将其去掉。

      • 只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符

      • next()不能得到带有空格的字符串。

       package com.dlq.Scanner;
       ​
       import java.util.Scanner;
       ​
       public class Demo1 {
           public static void main(String[] args) {
               //创建一个扫描器对象,用于接收键盘数据
               Scanner scanner = new Scanner(System.in);
       ​
               System.out.println("使用next方式接收:");
               if(scanner.hasNext()){
                   //使用next方式接收
                   String str= scanner.next();
                   System.out.println("输出的内容为:"+str);//hello
              }
               //凡是属于I/O(输入/输出)流的类如果不关闭会一直占用资源,要养成 用完就关 的好习惯!!!
               scanner.close();
          }
       }
       ​
    • nextLine():

      • 以enter为结束符,也就是说 nextLine()方法返回的是输入回车之前的所有字符。

      • 可以获得空白。

       package com.dlq.Scanner;
       ​
       import java.util.Scanner;
       ​
       public class Demo2 {
           public static void main(String[] args) {
               //从键盘接收数据
               Scanner scanner=new Scanner(System.in);
       ​
               System.out.println("使用nextLine方式接收:");
               //判断是否还有输入
               if (scanner.hasNextLine()){
                   String str=scanner.nextLine();
                   System.out.println("输出的内容为:"+str);//hello world
              }
               scanner.close();
          }
       }
       ​
       package com.dlq.Scanner;
       ​
       import java.util.Scanner;
       ​
       public class Demo3 {
           public static void main(String[] args) {
               //从键盘接收数据
               Scanner scanner=new Scanner(System.in);//输入
       ​
               //System.out.println("请输入数据:");
       ​
               String str=scanner.nextLine();//保存
       ​
               System.out.println("输出的内容为:"+str);//hello world   输出
       ​
               scanner.close();//关闭
          }
       ​
       }
       ​
    • next...():学以致用!!!

     package com.dlq.Scanner;
     ​
     import java.util.Scanner;
     ​
     public class Demo4 {
         public static void main(String[] args) {
             Scanner scanner=new Scanner(System.in);
     ​
             //键盘接收数据
             int i=0;
             float f=0.0f;
     ​
             System.out.println("请输入整数:");
             if (scanner.hasNextInt()){
                 i=scanner.nextInt();
                 System.out.println("整数数据:"+i);
            }
             else{
                 System.out.println("非整数数据!");
            }
     ​
             System.out.println("请输入小数:");
     ​
             if (scanner.hasNextFloat()){
                 f=scanner.nextFloat();
                 System.out.println("小数数据:"+f);
            }
             else{
                 System.out.println("非小数数据!");
            }
             scanner.close();
        }
     }
     ​
     package com.dlq.Scanner;
     ​
     import java.util.Scanner;
     ​
     public class Demo5 {
         public static void main(String[] args) {
             //输入多个数字,求他们的总和与平均数,每输入一个数字用回车确认,通过输入非数字来结束输入并输出执行结果
             Scanner scanner = new Scanner(System.in);
             //和
             double sum=0;
             //计算输入了多少个数字
             int m=0;
             System.out.println("请输入数据:");
             //通过循环判断是否还有输入,并在循环里对每一次输入进行求和统计
             while (scanner.hasNextDouble()){
                 double x = scanner.nextDouble();
                 m=m+1;//m++
                 sum=sum+x;
                 System.out.println("你输入了"+m+"个数据,当前结果sum="+sum);
            }
             System.out.println(m+"个数字和为:"+sum+"\n"+m+"平均数为:"+sum/m);
     ​
             scanner.close();
        }
     }
     ​

day14-Scanner的更多相关文章

  1. Java输入输出常用类Scanner

    Scaner类,使用获取键盘输入. public boolean DemoTest(){ Scanner input = new Scanner(System.in); System.out.prin ...

  2. Scanner类

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

  3. java中scanner类的用法

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

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

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

  5. java 中的Scanner

    java.util.Scanner是Java5的新特征,主要功能是简化文本扫描.这个类最实用的地方表现在获取控制台输入,其他的功能都很鸡肋,尽管Java API文档中列举了大量的API方法,但是都不怎 ...

  6. Golang 逐行读写之scanner.Scan

    Go语言实现逐行读的方法多种,本文只介绍Scaner的方法,也是go推荐的方法. 官方文档 例子: file, err := os.Open("filename") if err ...

  7. BufferedReader与Scanner的区别

    在Java中,我们都知道Java的标准输入串是System.in.但是我们却很少在Java中看到谁使用它,这是因为我们平时输入的都是一个字符串或者是一个数字等等.而System.in提供的read方法 ...

  8. 简单利用Scanner对文件进行解析

    public class AvPrice{    static int count = 0;    static int sum = 0;    public static void main(Str ...

  9. java利用Scanner获取键盘输入

    首发地址:我的网易博客 在运行一个java程序的时候,可能我们需要在运行的时候传递一些参数进去...咋办呢... java提供了一个Scanner类,利用这个类,我们可以很方便的获取键盘输入的参数.. ...

  10. 输入scanner,if-else

    import java.util.Scanner; public class Job{ public static void main(String[] args){ Scanner scanner ...

随机推荐

  1. SpringBoot Session共享,配置不生效问题排查 → 你竟然在代码里下毒!

    开心一刻 快 8 点了,街边卖油条的还没来,我只能给他打电话 大哥在电话中说到:劳资卖了这么多年油条,从来都是自由自在,自从特么认识了你,居然让我有了上班的感觉! Session 共享 SpringB ...

  2. 海豚调度调优 | 如何解决任务被禁用出现的Bug

    本系列文章是 DolphinScheduler 由浅入深的教程,涵盖搭建.二开迭代.核心原理解读.运维和管理等一系列内容.适用于想对 DolphinScheduler了解或想要加深理解的读者. 祝开卷 ...

  3. win+jenkins+git+allure+tomcat+jdk部署(万人坑)

    万人坑:之所以叫万人坑,是一些网站真的是非常非常非常坑,且不说按照他们的方法一次都没成功,还遇到了各种千奇百怪的问题,浪费了本人3.1415926h的时间,真想给他们竖起一个超大号的倒拇指.下面开始踩 ...

  4. 9组-Alpha冲刺-5/6

    一.基本情况 队名:不行就摆了吧 组长博客: https://www.cnblogs.com/Microsoft-hc/p/15546711.html 小组人数: 8 二.冲刺概况汇报 谢小龙 过去两 ...

  5. js_for循环的错误

    本段代码实现的效果是遍历数组中的每个元素,给每个元素插入一个类名 for (var i = 0; i < dropdownLi.length; i++) { if(i == 1){ contin ...

  6. 【selenium + python】之BSTestRunner生成测试报告时报错:NameError: name 'unicode' is not defined

    好久没生成报告了,最近使用的时候报了一个错误!用的这个报告模板BSTestRunner但是汇报下面的错误: NameError: name 'unicode' is not defined 经查询得知 ...

  7. Could not resolve placeholder 'xxx.xxx.xxx' in value "http://${xxx.xxx.xxx}"

    代码一切正常,忽然报这个错误, 原因为,当前配置在配置文件最后,且前面均为注释,把当前配置位置提前即可

  8. vue 中 elementUI el-table 实现滚动加载

    vue 中 elementUI el-table 实现滚动加载 一.需求 vue 中 elementUI el-table 实现滚动加载,场景:当表格需要显示大量数据时,又想通过一页来进行展示数据. ...

  9. RxJS 系列 – Conditional and Boolean Operators

    前言 前几篇介绍过了 Creation Operators Filtering Operators Join Creation Operators Error Handling Operators T ...

  10. Qml 实现星级评分组件 已发布

    [写在前面] 在现代应用程序中,星级评分是一个常见的用户界面元素,它允许用户对产品.服务或内容进行评价. 想必大家在用各种带有评分的软件中看到过这个组件: 本文将指导你如何使用 Qml 创建一个简单而 ...