首页 > 其他分享 >Scanner对象

Scanner对象

时间:2023-01-18 14:56:09浏览次数:31  
标签:Scanner 对象 System println out 输入 scanner

Scanner对象

Scanner是Java5的新特性,导入包的路径为"java.util.Scanner"

我们可以通过Scanner类来获取用户的输入

Scanner基本语法

创建一个Scanner对象

Scanner s = new Scanner(System.in);

我们可以使用Scanner 类的next() 和 nextLine()方法获取用户输入的字符串,读取前一般我们需要使用hasNex()或hasNexLine()方法来判断是否还有输入的数据

使用next方法接收数据

package com.yangtao.scanner;

//导入包"Scanner"
import java.util.Scanner;
public class Dame1 {
    public static void main(String[] args) {
        //创建一个对象,用于接收键盘输入的数据
        Scanner scanner = new Scanner(System.in);

        System.out.println("使用next方法来接收:");
        //判断用户有没有输入字符串
        if(scanner.hasNext()){
            //接受用户输入的数据,保存在变量str中
            String str = scanner.next();
            //查看用户输入的数据
            System.out.println("输入的内容为:"+str);
        }
        //只要是IO流的类如果不关闭就会一直占用资源,要养成良好习惯用完就关掉。IO流(输入输出流)
        //关闭
        scanner.close();

    }
}

next方法特性

  1. 一定要读取到有效字符后才可以结束输入
  2. 对输入有效字符之前遇到的空拍,next()方法会自动将其去掉
  3. 只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符
  4. next()不能得到带有空格的字符串

使用nextLine()方法接收数据

import java.util.Scanner;
public class Dame2 {
    public static void main(String[] args) {
        //创建scanner对象
        Scanner scanner = new Scanner(System.in);

        System.out.println("使用nextLine方法来接收:");
        //判断是否还有输入
        if(scanner.hasNextLine()){
            //接收用户输入的数据
            String str = scanner.nextLine();
            //显示用户输入的数据
            System.out.println("输入的内容为:"+str);
        }
        //关闭scanner
        scanner.close();
    }
}

nextLine()方法特性

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

其他方法

如果要输入int或float类型的数据,在Scanner类中也有支持,但是在输入之前最好先使用hasNextxxx() 方法进行验证,在使用nextXxx()来进行读取

package com.yangtao.scanner;

//导入Scanner包
import java.util.Scanner;
public class Dame3 {
    public static void main(String[] args) {
        //创建一个scnaner对象
        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();
    }
}

练习

用户可以输入n个数字,并求其总和与平均数,每输入一个数字使用回车确认,通过输入非数字来结束输入并输出执行结果

package com.yangtao.scanner;

//导入Scanner包
import java.util.Scanner;
public class Dame4 {
    public static void main(String[] args) {
        //创建一个Scanner对象
        Scanner scanner = new Scanner(System.in);

        double sum = 0;  //总和
        int n = 0;  //输入了多少数字
        System.out.println("请输入数字:");
        //通过循环判断是否还有输入,并在里面对每一次进行求和统计
        while (scanner.hasNextInt()){
            //接收用户输入的数字
            double x = scanner.nextInt();
            //计数,用户每输入一次数字加1
            n = n + 1;
            //计算用户输入数字的总和
            sum = sum + x;
        }

        //显示输入数字的次数以及输入数字的和
        System.out.println("共输入了:"+n+"次数字"+",和为:"+sum);
        //显示用户输入数字的平均值
        System.out.println("平均值为:"+(sum/n));

        //关闭
        scanner.close();
    }
}

标签:Scanner,对象,System,println,out,输入,scanner
From: https://www.cnblogs.com/yangtao2333/p/17059800.html

相关文章

  • 5面向对象
    面向对象面向对象编程(oop)面向对象的本质是:以类的方式组织代码,以对象的组织(封装)数组抽象三大特性:封装、继承、多态先有类后又对象,类是对象的模板类和对象类是一种抽......
  • JS_9_window对象
    BOM浏览器对象模型:规范浏览器对js的支持,即js调用浏览器的功能。它的具体实现为windows对象 一、框体方法弹出一个框框,调用时候window可省略不写。警告框:会显示......
  • js两个对象赋值,只赋共同的值
    letobj1={a:1,b:2,c:3}letobj2={a:0,b:0,c:0}//两个对象的字段完全相同时采用下面两种方式obj2=Object.assign(obj1)......
  • JavaScript学习笔记—面向对象
    1.类的简介类是对象的模板,可以将对象中的属性和方法直接定义在类中,定义后,就可以直接通过类来创建对象。通过同一个类创建的对象,成为同类对象可以用instanceof来检查......
  • 面向对象
    面向对象3要素1、封装​ 组装:将数据和操作组装到一起。​ 隐藏数据:对外只暴露一些接口,通过接口访问对象。比如驾驶员使用汽车,不需要了解汽车的构造细节,只需要知道使......
  • Constructor注入(具有相关对象)示例
    在此示例中,我们使用 map 作为具有Answer和User的答案。在这里,我们将键和值对都用作对象。答案具有自己的信息,例如answerId,答案和postedDate,用户具有自己的信息,例如userId......
  • 具有依赖对象的构造函数注入
    如果类之间存在HAS-A关系,则首先创建依赖对象(包含对象)的实例,然后将其作为主类构造函数的参数传递。在这里,我们的场景是员工HAS-A地址。Address类对象将称为从属对象。首......
  • 学习笔记——Spring中的注解;Spring中装配对象的注解;使用注解配置对象中属性
    2023-01-17一、Spring中的注解 1、使用注解的原因(1)使用注解将对象装配到IOC容器中(2)使用注解管理对象之间依赖关系(自动装配)2、Spring中装配对象的注解(1)@Component标......
  • 如何理解面向对象程序设计OOP
    基本概念面向对象是对具体问题的抽象,将需求按照特点,功能划分将共性封装成一个对象,面向对象具有封装、继承、多态的特性。什么是对象对象是该事务的具体表现形式,具体的个体。......
  • 软件工程:5.面向对象方法-RUP
    RUP的特点rup是基于uml的过程框架以用况为驱动,以体系结构为中心的迭代、增量式开发。rup比较完整的定义了将用户需求转化成产品所需要的的活动集,并提供了活动指南以及产......