Java基础 - 判断用户输入的类型Scanner类的hasNextInt(),hasNextFloat()...方法

为了保证用户输入的数据不会引起系统奔溃,这里提供一个在系统接收用户输入之前,就判断用户输入的数据是否符合要求,符合要求就接收,不符合要求就拒收
以输入int类型的数据为例

public class Demo1 {
	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		System.out.println("请输入一个数字:");
		if(input.hasNextInt()) {
			int num = input.nextInt();
			System.out.println("你输入的是:"+num);
		}else {
			System.out.println("你输入一个锤子");
		}
	}
}
请输入一个数字:
abc
你输入的是个锤子
请输入一个数字:
123
你输入的是:123

感兴趣的朋友可以查看Scanner类中hasNextInt()的源码:

public boolean hasNextInt(int radix) {
    setRadix(radix);
    boolean result = hasNext(integerPattern());
    if (result) { // Cache it
        try {
            String s = (matcher.group(SIMPLE_GROUP_INDEX) == null) ?
                processIntegerToken(hasNextResult) :
                hasNextResult;
            typeCache = Integer.parseInt(s, radix);
        } catch (NumberFormatException nfe) {
            result = false;
        }
    }
    return result;
}
  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
### 回答1: `scanner.hasNextInt()` 是一个 Java 中的 Scanner 方法,用于检查输入流中是否还有一个整数。如果输入流中还有一个整数,该方法将返回 true;否则返回 false。 例如,下面的代码片段演示了如何使用 `hasNextInt()` 方法来读取输入流中的下一个整数: ```java import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); if (scanner.hasNextInt()) { int num = scanner.nextInt(); System.out.println("输入的整数是:" + num); } else { System.out.println("输入流中没有整数。"); } } } ``` 在上面的代码中,我们首先创建了一个 Scanner 对象来读取标准输入流(即键盘输入)。然后,我们使用 `hasNextInt()` 方法来检查输入流中是否还有一个整数。如果有,我们使用 `nextInt()` 方法来读取该整数并将其打印出来;否则,我们将输出一个错误消息。 ### 回答2: scanner.hasNextInt()是JavaScanner的一个方法,用于判断输入流中是否还有下一个整数。 当我们需要从标准输入(比如键盘)读取一系列的输入时,可以使用Scanner。而hasNextInt()方法则可以用来判断输入的下一个值是否为整数。 当我们调用hasNextInt()方法后,它会检查输入流中的下一个值。如果该值是一个整数,它会返回true;反之,如果下一个值不是整数,它会返回false。 使用hasNextInt()方法可以避免在读取输入时出现异常。我们可以在使用nextInt()等读取整数的方法前先调用hasNextInt()方法判断一下,以确保输入合法的整数。 例如,假设我们要读取输入的整数并计算它们的和。我们可以使用以下代码: ``` java import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int sum = 0; System.out.println("请输入一系列整数,以空格分隔:"); while (scanner.hasNextInt()) { int num = scanner.nextInt(); sum += num; } System.out.println("输入的整数之和为:" + sum); scanner.close(); } } ``` 在上面的示例中,我们使用了hasNextInt()方法判断输入是否为整数。只有当输入的下一个值是整数时,才会执行循环体中的代码。这样可以避免因输入非整数而导致的运行时异常。 综上所述,scanner.hasNextInt()方法Java中用于判断输入流中是否还有下一个整数。 ### 回答3: scanner.hasNextInt()是一个Java中的Scanner方法,用于检查输入流中是否还有下一个整数。当调用方法时,会返回一个布尔值,如果输入流中有下一个整数,则返回true;如果输入流中没有下一个整数,则返回false。 通常情况下,我们在使用Scanner来读取用户输入时,会先调用hasNextInt()方法进行判断,以确保输入数据是一个整数,从而避免在处理输入时发生异常。 下面是使用Scanner的hasNextInt()方法的一个例子: ```java import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("请输入一个整数:"); if (scanner.hasNextInt()) { int num = scanner.nextInt(); System.out.println("您输入的整数是:" + num); } else { System.out.println("您输入的不是一个整数!"); } scanner.close(); } } ``` 在这个例子中,我们首先创建一个Scanner对象来读取用户输入。然后,通过调用hasNextInt()方法判断用户输入是否是一个整数。如果用户输入的是一个整数,我们就使用nextInt()方法来读取整数的值,并输出到控制台。如果用户输入的不是一个整数,我们就输出相应的提示信息。 总结起来,scanner.hasNextInt()方法的作用是用来检查输入流中是否还有下一个整数,可以帮助我们判断用户输入数据类型,从而进行相应的处理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值