Java 仅限整数?
如何将输入限制为仅整数、无双精度等?有经验的人回答的简单问题。如果输入不是double,则显示错误消息,并能够再次输入Java 仅限整数?,java,integer,Java,Integer,如何将输入限制为仅整数、无双精度等?有经验的人回答的简单问题。如果输入不是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
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.");
}
}
使用
如果可以使用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);
您不必解析int或担心NumberFormatException。请注意,由于hasNextXXX方法不会超过任何输入,因此如果要跳过垃圾,可能必须调用next,如上所示。确定我这样做:
package reader;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner reader = new Scanner(System. in );
int years;
int minutes;
String data = null;
System.out.println("Years to Minutes Converter");
boolean test = false;
while (test == false) {
System.out.print("Insert number of years: ");
String regex = "\\d+";
data = reader.next();
test = data.matches(regex);
if (test == false) {
System.out.println("There is a problem try again");
}
}
years = Integer.valueOf(data);
minutes = years * 525600;
System.out.print("That is ");
System.out.print(minutes);
System.out.print(" in minutes.");
}
}
它会说:
Years to Minutes Converter
插入年数:dsds
出现问题,请重试
插入年数:。。
出现问题,请重试
插入年份:2
这是1051200分钟。你不能限制它。只有在事实上,java命令行支持才是非常有限的,如果您真的需要这种功能,您可以考虑查看已被编辑的诅咒APIE标签的各种绑定,但将来参考:java和javascript是无关的,所以你不应该将问题标记为javascript,除非它们实际上涉及到该语言。谢谢,但是你能解释一下你对字符串data=null做了什么以及为什么创建了布尔值吗?嗨,字符串data=null被用作变量来获取用户写的内容,我使用它是因为他可以写任何东西,如果我使用nextInt,我会有一个运行时错误,因为我只需要数字,我使用正则表达式比较他写的内容,如果不是数字,布尔值表示false,那么while将一直运行到他写数字: