获取2个或更多值然后检查它们是否为整数

时间:2014-08-01 12:57:12

标签: java

如何使用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()){ }

4 个答案:

答案 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!")
}