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. pytorch-a2c-ppo-acktr-gail 算法代码

    地址: https://github.com/ikostrikov/pytorch-a2c-ppo-acktr-gail

  2. "基础模型时代的机器人技术" —— Robotics in the Era of Foundation Models

    翻译: 2023年是智能机器人规模化的重要一年!对于机器人领域之外的人来说,要传达事物变化的速度和程度是有些棘手的.与仅仅12个月前的情况相比,如今人工智能+机器人领域的大部分景观似乎完全不可识别.从 ...

  3. 利用强化学习算法解释人类脑对高维状态的抽象表示:how humans can map high-dimensional sensory inputs in actions

    论文: <Using deep reinforcement learning to reveal how the brain encodes abstract state-space repre ...

  4. PEP 703作者给出的一种no-GIL的实现——python3.9的nogil版本

    PEP 703的内容是什么,意义又是什么呢? 可以说python的官方接受的no-GIL提议的PEP就是PEP 703给出的,如果GIL帧的从python中移除那么可以说对整个python生态圈将有着 ...

  5. baselines算法库baselines/common/input.py模块分析

    baselines算法库baselines/common/input.py模块代码: import numpy as np import tensorflow as tf from gym.space ...

  6. JUC高并发编程详细教程

    1.大纲 2.课件 https://www.yuque.com/java51/avi/xevuo1 3.视频与代码 1.视频教程 2.视频资料领取,课程代码下载,加微信851298348,发送&quo ...

  7. 13. Advanced-control timers (TIM1 and TIM8)

    1. 基本介绍 有三个基础的寄存器: 计数寄存器(TIMx_CNT,Counter register) 预分频寄存器(TIMx_PSC,Prescaler register) 自动重载寄存器(TIMx ...

  8. MAC地址格式详解

    以太网编址 在数据链路层,数据帧通常依赖于MAC地址来进行数据交换,它如同公网IP地址一样要求具有全球唯一性,这样才可以识别每一台主机.那么MAC地址如何做到这点?它的格式又是什么? MAC地址,英文 ...

  9. Centos8下Redis设置Session共享存储

    Redis-Session共享存储 前提条件: 1.安装Redis 2.安装Apache或Nginx 3.安装php 本机环境: php:7.3 Redis:5.0.7 开始部署: 我是分别用Cent ...

  10. git重命名文件夹

    在源代码文件夹中打开git bash, 不同名称的文件夹命令: 1. git mv  A An 3. git add -u An 4.  git commit -m "重命名A为An&quo ...