一文带你掌握Java中Scanner类的使用

一文带你掌握Java中Scanner类的使用

Scanner类是Java中很常用的一个类,它可以读取用户在控制台上的输入数据。在处理用户输入数据的时候,使用Scanner类可以大大简化代码,并且提高开发效率。本文将详细介绍Scanner类的使用方法,包括Scanner类的创建、读取不同数据类型、异常处理等内容,希望能帮助Java初学者快速掌握Scanner类的应用。

创建Scanner对象

Java中使用Scanner类需要先创建Scanner对象。创建Scanner对象有两种方式:

从标准输入流中创建

从标准输入流中创建Scanner对象,即从控制台读取用户输入数据,需要通过System.in实现。

Scanner scanner = new Scanner(System.in);

从字符串中创建

除了从标准输入流中创建Scanner对象,还可以从字符串中创建Scanner对象。这在对于字符串的操作时非常有用。

String s = "this is a test string.";
Scanner scanner = new Scanner(s);

读取不同的数据类型

Scanner类可以读取不同数据类型的输入,在读取数据的时候需要根据实际类型进行相应的转换。

读取字符串

在读取字符串的时候,可以使用next()方法。这个方法会读取输入流中的下一个字符串,在遇到空格或者换行符时停止。

Scanner scanner = new Scanner(System.in);
System.out.print("请输入您的名字:");
String name = scanner.next();
System.out.println("您好," + name);

读取整数

在读取整数的时候,可以使用nextInt()方法。这个方法会读取输入流中的下一个整数,并且返回int类型的结果。

Scanner scanner = new Scanner(System.in);
System.out.print("请输入您的年龄:");
int age = scanner.nextInt();
System.out.println("您的年龄是:" + age);

读取浮点数

在读取浮点数的时候,可以使用nextFloat()和nextDouble()方法。这两个方法会分别读取输入流中的下一个单精度浮点数和双精度浮点数,并且返回对应的结果。

Scanner scanner = new Scanner(System.in);
System.out.print("请输入您的身高:");
float height = scanner.nextFloat();
System.out.println("您的身高是:" + height + "m");

异常处理

在读取用户输入数据的时候,不可避免地会出现输入数据类型与代码预期不符的情况。比如,当代码需要读取整数类型数据时,但用户输入了一个字符串数据。处理这种异常情况可以使用try-catch语句块。

Scanner scanner = new Scanner(System.in);
System.out.print("请输入您的年龄:");
try {
    int age = scanner.nextInt();
    System.out.println("您的年龄是:" + age);
} catch (InputMismatchException e) {
    System.out.println("输入的数据类型错误,请重新输入。");
}

示例演示

接下来我们来看一下一个完整的示例,通过Scanner类读取用户输入的学生信息并进行处理。

import java.util.Scanner;

public class Student {
    private String name;
    private int age;
    private float height;

    public Student(String name, int age, float height) {
        this.name = name;
        this.age = age;
        this.height = height;
    }

    public void display() {
        System.out.println("您输入的学生信息如下:");
        System.out.println("姓名:" + name);
        System.out.println("年龄:" + age);
        System.out.println("身高:" + height + "m");
    }

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("请输入学生姓名:");
        String name = scanner.next();
        System.out.print("请输入学生年龄:");
        int age = scanner.nextInt();
        System.out.print("请输入学生身高:");
        float height = scanner.nextFloat();

        Student student = new Student(name, age, height);
        student.display();
    }
}

以上代码中,我们首先创建了一个Student类,包含了学生的姓名、年龄、身高等信息。在main方法中,我们通过Scanner类读取用户输入的学生信息,并且创建一个Student对象,最后调用了display()方法,将学生信息输出到控制台上。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:一文带你掌握Java中Scanner类的使用 - Python技术站

(0)
上一篇 2023年5月26日
下一篇 2023年5月26日

相关文章

  • JS+CSS实现的日本门户网站经典选项卡导航效果

    实现日本门户网站经典选项卡导航效果,需要使用JS和CSS两种语言。 下面是一些步骤和示例说明: 步骤一:HTML结构 首先,在 HTML 中创建导航选项卡的外层容器,再在容器内创建导航选项卡的标题与内容。 示例: <div class="tab-container"> <ul class="tab-title-…

    Java 2023年6月16日
    00
  • 深入分析java文件路径的详解

    深入分析Java文件路径的详解 Java文件路径是指Java程序中文件的保存路径,正确的文件路径是Java程序正常运行的前提。 绝对路径和相对路径 Java文件路径分为绝对路径和相对路径。 绝对路径 绝对路径是完整的文件路径,包含盘符或根路径。它是指从根文件夹或设备的位置开始的路径,不依赖于当前路径。 例如,Windows系统下的绝对路径:C:\User\A…

    Java 2023年5月20日
    00
  • EL表达式的隐式对象_动力节点Java学院整理

    EL表达式的隐式对象是指在JSP页面中可以直接使用的一些对象,不需要通过Scriptlet或JSTL等语法进行声明或使用。EL表达式的隐式对象包括以下几种: pageScope:该隐式对象表示一个HashMap,在JSP页面中通过El表达式可以访问该HashMap中的值。 示例: <% pageContext.setAttribute("na…

    Java 2023年6月15日
    00
  • Android实现文字翻转动画的效果

    下面我来详细讲解“Android实现文字翻转动画的效果”的完整攻略。 一、思路分析 实现文字翻转动画,本质上是将文字从正面翻转到背面,再从背面翻转回正面,因此涉及到以下几个步骤: 创建两个TextView,一个作为正面文字,一个作为背面文字。 将正面文字和背面文字重合在同一个位置,重合时背面文字需要做一个180度的翻转。 当需要翻转时,将正面文字(即背面文字…

    Java 2023年5月23日
    00
  • springboot jpa 实现返回结果自定义查询

    Spring Boot是目前很流行的Java Web开发框架,而JPA则是Java Persistence API的简称,是Java EE的一种ORM(对象关系映射)规范。在Spring Boot项目中,我们可以通过JPA来方便地实现与数据的交互。本篇文章将着重介绍如何使用Spring Boot JPA实现返回结果自定义查询的方法,以下是具体步骤: 第一步:…

    Java 2023年6月3日
    00
  • Java中的Gradle与Groovy的区别及存在的关系

    Java中的Gradle与Groovy的区别及存在的关系 Gradle和Groovy是Java生态圈中的两个重要工具,Gradle作为一款构建工具,而Groovy则是一种脚本语言。它们之间有着密切的关系,在Java项目中都存在重要的作用。 Gradle是一款基于Groovy的自动化构建工具。它不仅支持Java开发,还支持其他语言的项目构建。Gradle支持使…

    Java 2023年5月20日
    00
  • 手撸一个Spring Boot Starter并上传到Maven中央仓库

    手撸一个Spring Boot Starter并上传到Maven中央仓库,可以大致分成以下步骤: 一、准备工作 1. 创建一个Maven项目 在本地创建一个Maven项目,包含一个POM文件和一个src目录。可以使用Eclipse、IntelliJ IDEA等开发工具,也可以手工创建。 2. 引入相关依赖 在POM文件中引入Spring Boot和相关依赖,…

    Java 2023年5月19日
    00
  • Java私有构造函数作用原理解析

    Java私有构造函数作用原理解析 在Java面向对象编程中,构造函数是非常基础的概念。一个类中的构造函数可以用来进行初始化操作,并且在创建new对象时被自动调用。然而,在某些情况下,我们需要禁止创建对象或者限制创建对象的种类,这时候可以使用私有构造函数。本文将详细解析私有构造函数的作用原理和使用技巧。 一、什么是私有构造函数 首先,来看一下如何定义私有构造函…

    Java 2023年5月26日
    00
合作推广
合作推广
分享本页
返回顶部