如何使用Scanner类获取2个或更多用户的整数值,然后检查它们;如果它们都是整数,则运行一些语句,如果不是只显示警告而不是崩溃!
我编写了这段代码但是Java不行!当然我知道问题出在哪里。我只想要这样的东西:
Scanner sc = new Scanner(System.in);
System.out.println("Enter the first value: ");
String v1 = sc.nextLine() ;
System.out.println("Enter the second value: ") ;
String v2 = sc.nextLine() ;
if(v1.hasNextInt() && v2.hasNextInt()){ }
答案 0 :(得分:1)
将您的代码更改为:
Scanner sc = new Scanner(System.in);
System.out.println("Enter the first value: ");
int v1 = sc.nextInt() ; // could also use hasNextInt() before this line
System.out.println("Enter the second value: ") ;
int v2 = sc.nextInt() ;// could also use hasNextInt() before this line
// you have 2 int values..
答案 1 :(得分:0)
您可以使用sc.nextInt()
作为integer
进行输入
但是,如果您想将输入作为string
,那么
只需使用Integer.parseInt(String value);
此方法将String值作为参数并将其转换为Integer.However如果String值可以转换为integer然后很好,否则此方法会抛出NumberFormatException
,您可以catch
通过实现异常处理,避免程序崩溃。
参见Scanner类的各种方法,以获取不同类型的 输入
Scanner in=new Scanner(System.in);
integer = in.nextInt();
longInteger = in.nextLong();
realNumber = in.nextFloat();
doubleReal = in.nextDouble();
string1 = in.nextLine();
答案 2 :(得分:0)
org.apache.commons.lang3.StringUtils
有一些很好的实用程序方法来检查字符串。在这种情况下,我会这样做:
Scanner sc = new Scanner(System.in);
System.out.println("Enter the first value: ");
String v1 = sc.nextLine() ;
System.out.println("Enter the second value: ") ;
String v2 = sc.nextLine() ;
if(StringUtils.isNumeric(v1) && StringUtils.isNumeric(v2)){ }
答案 3 :(得分:0)
您可以在.matches("-?\\d+")
上使用String
表达式来检查它是否为Integer
。
{
int number;
if (v1.matches("-?\\d+"))
number = Integer.parseInt(v1);
else
System.out.println("It's not a number!")
}