Scanner和nextInt丢弃整数

nee*_*raj 3 java input

我正在使用Scanner在java中获取用户输入.当我使用nextInt()并且用户输入"2 5"时,则分配值"2"并丢弃5.如果我想显示这样的输入是错误怎么办?我想到的一个解决方案是,我可以使用nextString()而不是nextInt()然后解决问题.但任何人都可以提出更好的解决方案吗?

我意识到它不会丢弃空格后的整数,而是将它用于下一个输入.

import java.util.Scanner;
class Test{
static Scanner in=new Scanner(System.in);
static void trial(){
    int k=in.nextInt();
    System.out.println(k);
    System.out.println(k);
}

public static void main(String[] args){     
    int k=in.nextInt();
    System.out.println(k);
    System.out.println(k);
    trial();        
}
}
Run Code Online (Sandbox Code Playgroud)

Kum*_*tra 8

1.首先使用nextLine()读取整个行.

2.使用Integer.parseInt()方法验证整数输入.

例如:

Scanner scan = new Scanner(System.in);
String s = scan.nextLine();

try{
    Integer.parseInt(s);
}
catch(NumberFormatException ex){
    System.out.println("Its not a valid Integer");
}
Run Code Online (Sandbox Code Playgroud)