Scanner对象

目的;用来获取用户的输入

基本语法:

Scanner s = new scanner (System.in);

通过Scanner 类的next()和nextLine()方法,获取输入的字符串,

在读取前我们一般需要使用hasNext()与hasNextLine()判断是否还有输入的数据。

  • next():

    1. 一定要读取到有效字符后才可以可以结束输入

    2. 对输入有效字符之前遇到的空白,next()方法都会自动过滤掉

    3. 只有输入有效字符之后,才将其后面输入的空白作为分隔符,或者结束符号

    4. 结论:next()不能得到带有空格的字符串

  • nextLine():

    1. 以Enter作为结束符,也就是说nextLine()方法返回的是输入回车之前的所有字符

    2. 可以获得中间的空白字符

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

       //凡是属于IO流的类,如果不关闭会一直占用资源,所以必须关闭掉
       scanner.close();
  }

   public static void main(String[] args) {
       //创建一个扫描对象,用于接受键盘数据
       Scanner scanner = new Scanner(System.in);
       System.out.println("使用nextline方式接受:");
       //判断用户有没有输入字符串
       if (scanner.hasNextLine()){

           //使用nextLine接受数据
           String str = scanner.nextLine();
           System.out.println("使用nextline方式接受的内容:"+str);

      }
       // 凡是属于IO流的类, 在使用往后,必须要关闭
       scanner.close();
  }

   public static void main(String[] args) {
       // 建立一个扫描对象,用于接受键盘输入数据
       Scanner scanner = new Scanner(System.in);

       System.out.println("等待用户输入:");
       //创建一个变量,用于储存键盘输入的数据
       String str = scanner.next();

       System.out.println("你输入的数据是:"+str);
       //凡是IO流的类,都必须用完关闭
       scanner.close();
  }

Scanner进阶

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


   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++;
           sum+=x;
           System.out.println("你输入了第"+m+"个数据");
      }
       System.out.println("输入的个数:"+ m);
       System.out.println("总和为:"+ sum);
       System.out.println("平均数:"+ (sum/m));
  }

java基础——Scanner的基础和进阶的更多相关文章

  1. Java基础 Scanner 使用nextInt接收整数

        JDK :OpenJDK-11      OS :CentOS 7.6.1810      IDE :Eclipse 2019‑03 typesetting :Markdown   code ...

  2. Java基础 Scanner 使用nextLine接收字符串

        JDK :OpenJDK-11      OS :CentOS 7.6.1810      IDE :Eclipse 2019‑03 typesetting :Markdown   code ...

  3. Java 教程整理:基础、项目全都有

    Java 在编程语言排行榜中一直位列前排,可知 Java 语言的受欢迎程度了. 网上有很多 Java 教程,无论是基础入门还是开发小项目的教程都比比皆是,可是系统的很少,对于Java 学习者来说找到系 ...

  4. #Java学习之路——基础阶段(第七篇)

    我的学习阶段是跟着CZBK黑马的双源课程,学习目标以及博客是为了审查自己的学习情况,毕竟看一遍,敲一遍,和自己归纳总结一遍有着很大的区别,在此期间我会参杂Java疯狂讲义(第四版)里面的内容. 前言: ...

  5. Java实现蓝桥杯基础练习特殊回文数

    基础练习 特殊回文数 时间限制:1.0s 内存限制:512.0MB 提交此题 锦囊1 锦囊2 问题描述 123321是一个非常特殊的数,它从左边读和从右边读是一样的. 输入一个正整数n, 编程求所有这 ...

  6. Java实现 蓝桥杯 基础练习 闰年判断

    基础练习 闰年判断 时间限制:1.0s 内存限制:256.0MB 提交此题 锦囊1 锦囊2 问题描述 给定一个年份,判断这一年是不是闰年. 当以下情况之一满足时,这一年是闰年: 年份是4的倍数而不是1 ...

  7. Java实现 蓝桥杯 基础练习 字母图形

    基础练习 字母图形 时间限制:1.0s 内存限制:256.0MB 提交此题 锦囊1 锦囊2 问题描述 利用字母可以组成一些美丽的图形,下面给出了一个例子: ABCDEFG BABCDEF CBABCD ...

  8. Java实现 蓝桥杯 基础练习 数列特征

    基础练习 数列特征 时间限制:1.0s 内存限制:256.0MB 提交此题 锦囊1 锦囊2 问题描述 给出n个数,找出这n个数的最大值,最小值,和. 输入格式 第一行为整数n,表示数的个数. 第二行有 ...

  9. Java实现 蓝桥杯 基础练习 查找整数

    基础练习 查找整数 时间限制:1.0s 内存限制:256.0MB 提交此题 锦囊1 锦囊2 问题描述 给出一个包含n个整数的数列,问整数a在数列中的第一次出现是第几个. 输入格式 第一行包含一个整数n ...

随机推荐

  1. 在 .NET Core 中使用 ViewConfig 调试配置

    介绍 .NET Core 中的配置包含了多个配置提供程序,包括了 appsettings.json,环境变量,命令行参数等,还有一些扩展的自定义提供程序,比如说 ApolloConfig,AgileC ...

  2. CMU数据库(15-445) Lab4-CONCURRENCY CONTROL

    Lab4- CONCURRENCY CONTROL 拖了很久终于开始做实验4了.lab4有三个大任务1. Lock Manager.2. DEADLOCK DETECTION .3. CONCURRE ...

  3. 想要更高效地找到信息,你需要掌握这些搜索技巧 (google or baidu)

    想要更高效地找到信息,你需要掌握这些搜索技巧 (google or baidu) 转载:https://tingtalk.me/search-tips/ 在大型局域网(互联网)的今天,你以为搜索是一门 ...

  4. OxyPlot.SkiaSharp显示中文乱码的问题

    oxyplot 图表控件功能强大,使用很广泛.最近考虑到性能使用OxyPlot.SkiaSharp替代OxyPlot.WPF,曲线图表初步测试,性能提升近10倍左右.基于SkiaSharp图形引擎的一 ...

  5. ubuntu20.04开机显示recovering journal死机的解决方法

    事发突然,在今天开机的时候无法进入登陆界面,一直卡在黑屏界面,屏幕上只显示几行代码,且任何按键都无法起作用 /dev/sdb2:recovering journal /dev/sdb2:Clearin ...

  6. JS基础学习第七天

    包装类 在JS中为我们提供了三个包装类:String() Boolean() Number()通过这三个包装类可以创建基本数据类型的对象例子: 123 var num = new Number(2); ...

  7. 黑马架构师v2.5.1 (codeUtil)使用注意事项

    资源 1.资料里的codeutil软件有问题,使用时部分类和接口文件名后有一串日期数字等.码云的没问题 2.生成代码后zookeeper的IP改为本机的

  8. 开坑:mysql相关问题

    一. 先过滤后连表和先连表后在mysql中选择的哪一种? 二. left join 和inner join使用场景有什么区别? 三. 第二个问题的衍生问题:left join中where 条件使用对n ...

  9. 集群,lvs负载均衡的四种工作模式

    集群 集群的三种分类以及用途 负载均衡: 分配流量(调度器),提升速度 高可用: 关键性业务 高性能: 开发算法,天气预报,国家安全 负载均衡的集群 lvs(适用于大规模) haproxy(适用于中型 ...

  10. 【JDK8】Java8 新增BASE64加解密API

    什么是Base64编码? Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法 基于64个字符A-Z,a-z,0-9,+,/ ...