java - 仅限整数?

标签 java integer

如何将输入限制为仅整数(无 double 等)?简单的问题,请有经验的人来回答。如果输入不是 double 则显示错误消息,并能够再次输入

import java.util.Scanner;


public static void main(String[] args) {

    Scanner reader =  new Scanner(System.in);
    int years;
    int minutes;

    System.out.println("Years to Minutes Converter");
    System.out.print("Insert number of years: ");
    years = reader.nextInt();

    minutes = years * 525600;


    System.out.print("That is ");
    System.out.print(minutes);
    System.out.print(" in minutes.");

    }
 }

最佳答案

使用Scanner.hasNextInt()

如果此扫描器输入中的下一个标记可以使用 nextInt() 解释为默认基数中的 int 值,则返回 true方法。扫描仪不会前进超过任何输入。

示例代码:

Scanner sc = new Scanner(System.in);
System.out.print("Enter number 1: ");

while (!sc.hasNextInt()) 
    sc.next();

int num1 = sc.nextInt();
int num2;

System.out.print("Enter number 2: ");

do {
    while (!sc.hasNextInt()) 
        sc.next();
    num2 = sc.nextInt();
} while (num2 < num1);

System.out.println(num1 + " " + num2);

您不必parseInt或担心NumberFormatException。请注意,由于 hasNextXXX 方法不会前进到任何输入,因此如果您想跳过“垃圾”,您可能必须调用 next(),如上所示。

关于java - 仅限整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42741365/

相关文章:

c - Prime 与否 Prime 输出慢

java - 从 TextWatcher 方法中清除 TextView

java - 使用 Class.forName 调用类

css - webkit 只是切断了 css 编号中的小数点……如何解决?

python - 将零列和一列解释为二进制并存储为整数列

java - 比较两个整数字符串并打印出匹配项

java - 无法从 BroadcastReceiver 更新 android 小部件

java - 通过 id 从嵌套对象序列化

java - 如何在 XWPFTableRow 中连接 2 个单元格

c - 如何在不触发警告的情况下将整数值转换为指针地址