java如何判断输入的类型
  bEwXcvpt43BO 2023年11月02日 28 0

Java如何判断输入的类型

在Java编程中,经常会遇到需要判断输入的类型的需求。例如,当我们从用户那里接收输入数据时,需要判断输入的数据类型是否符合要求;或者在处理数据时,需要根据不同的数据类型执行不同的操作等等。本篇文章将介绍一些Java中判断输入类型的常用方法,并通过一个实际问题的解决来说明。

问题描述

假设我们正在开发一个学生成绩管理系统,我们需要从用户那里接收输入的学生信息,其中包括学生的姓名、年龄和成绩。我们希望能够判断用户输入的类型是否符合要求,并在输入类型错误时给出相应的提示。

解决方案

1. 使用Scanner类接收用户输入

首先,我们需要使用Java中的Scanner类来接收用户输入。Scanner类是Java中一个常用的工具类,可以用来读取标准输入(键盘输入)和其他输入流。

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        System.out.print("请输入学生的姓名:");
        String name = scanner.nextLine();

        System.out.print("请输入学生的年龄:");
        int age = scanner.nextInt();

        System.out.print("请输入学生的成绩:");
        double score = scanner.nextDouble();

        System.out.println("学生姓名:" + name);
        System.out.println("学生年龄:" + age);
        System.out.println("学生成绩:" + score);

        scanner.close();
    }
}

上述代码中,我们使用Scanner类分别接收了学生的姓名、年龄和成绩。nextLine()方法用于接收字符串类型的输入,nextInt()方法用于接收整数类型的输入,nextDouble()方法用于接收浮点数类型的输入。

2. 使用正则表达式判断输入类型

在上述代码中,我们使用了Scanner类的具体方法来接收不同类型的输入,但是如果用户输入的类型与期望的类型不符合,会抛出InputMismatchException异常。我们可以通过捕获这个异常来判断输入类型是否正确。

import java.util.Scanner;
import java.util.regex.Pattern;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        System.out.print("请输入学生的姓名:");
        String name = scanner.nextLine();

        System.out.print("请输入学生的年龄:");
        while (!scanner.hasNextInt()) {
            System.out.println("输入类型错误,请重新输入学生的年龄:");
            scanner.next();
        }
        int age = scanner.nextInt();

        System.out.print("请输入学生的成绩:");
        while (!scanner.hasNextDouble()) {
            System.out.println("输入类型错误,请重新输入学生的成绩:");
            scanner.next();
        }
        double score = scanner.nextDouble();

        System.out.println("学生姓名:" + name);
        System.out.println("学生年龄:" + age);
        System.out.println("学生成绩:" + score);

        scanner.close();
    }
}

上述代码中,我们使用了hasNextInt()hasNextDouble()方法来检查输入是否为整数或者浮点数类型,如果不是,则提示用户重新输入。同时,在判断输入类型错误时,我们使用了一个循环来保证用户输入正确的类型。

3. 使用正则表达式判断输入类型

除了使用Scanner类的方法和异常来判断输入类型外,我们还可以使用正则表达式来判断输入类型。

import java.util.Scanner;
import java.util.regex.Pattern;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        System.out.print("请输入学生的姓名:");
        String name = scanner.nextLine();

        System.out.print("请输入学生的年龄:");
        while (!scanner.hasNext(Pattern.compile("\\d+"))) {
            System.out.println("输入类型错误,请重新输入学生的年龄:");
            scanner.next();
        }
        int age = scanner.nextInt();

        System.out.print("请输入学生的成绩:");
        while (!scanner.hasNext(Pattern.compile("\\d+(\\.\\d+)?"))) {
            System.out.println("输入类型错误,请重新输入学生的成绩:");
            scanner.next();
        }
        double score = scanner.nextDouble();

        System.out.println("学生姓名:" + name);
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  2Vtxr3XfwhHq   2024年05月17日   55   0   0 Java
  Tnh5bgG19sRf   2024年05月20日   110   0   0 Java
  8s1LUHPryisj   2024年05月17日   46   0   0 Java
  aRSRdgycpgWt   2024年05月17日   47   0   0 Java
bEwXcvpt43BO