如何在Java中检查用户输入是String,double还是long

我是java的初学者。 我想首先检查用户输入是String还是Double或int。 如果是String,double或减号,则应提示用户再次输入有效的int号。 只有当用户输入有效数字时,程序才会跳转尝试。 我一直在想几个小时,我没有任何用处。请帮忙,谢谢!

import java.util.InputMismatchException; import java.util.Scanner; public class Fizz { public static void main(String[] args) { System.out.println("Please enter a number"); Scanner scan = new Scanner(System.in); try { Integer i = scan.nextInt(); if (i % 3 == 0 && (i % 5 == 0)) { System.out.println("FizzBuzz"); } else if (i % 3 == 0) { System.out.println("Fizz"); } else if (i % 5 == 0) { System.out.println("Buzz"); } else { System.out.println(i + "は3と5の倍数ではありません。"); } } catch (InputMismatchException e) { System.out.println(""); } finally { scan.close(); } } 

一个简单的解决方法是将整个行/用户输入读取为String。 这样的事情应该有效。 (未经测试的代码):

  String s=null; boolean validInput=false; do{ s= scannerInstance.nextLine(); if(s.matches("\\d+")){// checks if input only contains digits validInput=true; } else{ // invalid input } }while(!validInput); 

您也可以使用Integer.parseInt,然后检查该整数是否为非负性。 如果输入是字符串或双精度型,则可以捕获NumberFormatException。

 Scanner scan = new Scanner(System.in); try { String s = scan.nextLine(); int x = Integer.parseInt(s); } catch(NumberFormatException ex) { } 

试试这个。 我用了一些条件来表示输入。

 Scanner scan = new Scanner(System.in); String input = scan.nextLine(); int charCount = input.length(); boolean flag = false; for(int x=0; x 

尝试这个。 它将提示输入,直到输入大于0的int

 System.out.println("Please enter a number"); try (Scanner scan = new Scanner(System.in)) { while (scan.hasNext()) { int number; if (scan.hasNextInt()) { number = scan.nextInt(); } else { System.out.println("Please enter a valid number"); scan.next(); continue; } if (number < 0) { System.out.println("Please enter a number > 0"); continue; } //At this stage, the number is an int >= 0 System.out.println("User entered: " + number); break; } } 
 boolean valid = false; double n = 0; String userInput = ""; Scanner input = new Scanner(System.in); while(!valid){ System.out.println("Enter the number: "); userInput = input.nextLine(); try{ n = Double.parseDouble(userInput); valid = true; } catch (NumberFormatException ex){ System.out.println("Enter the valid number."); } }