如何检查用户输入的是String值而不是数字?

时间:2014-12-15 02:47:41

标签: java string input while-loop

我编写了一个简单的程序,当用户输入A和B时,计算三角形的斜边。我有一个while循环,提示用户输入大于0的值,但如何检查是否用户输入字符串值?

while (sideA<=0 || sideB<=0) {

我应该添加什么,如果用户输入字符串值,循环也会启动?

由于

3 个答案:

答案 0 :(得分:2)

然而,您获得输入(来自命令行,扫描程序或缓冲读取器)首先解析它并尝试将其存储在整数变量中。如果是字符串,则捕获异常并允许用户再次输入值。

try 
{
   int sideA = Integer.parseInt(input);
} 
catch (NumberFormatException ex) 
{
  //Do something here to keep continuing the while loop

}

答案 1 :(得分:0)

  Scanner input = new Scanner(System.in);

  // requesting user input
  System.out.println("Enter x and y : ");

  String x = input.next();
  String y = input.next();

  try {
     double d1 = Double.parseDouble(s1);
     double d2 = Double.parseDouble(s2);

     if(d1 > 0 && d2 > 0) {
        //Call for the hypotenuse method
        double z = hypotenuse(d1,d2);
     }
  } catch (NumberFormatException e) {
        System.out.println("Invalid Input!");
  }     

答案 2 :(得分:-2)

您可以使用二进制instanceof运算符。它以这种方式返回一个布尔值:

if( myVariable instanceof String )
    //it's a string!
else
    //it's not a string

这种方法当然也可用于检查其他类型。我建议使用 instanceof 键入A和B变量作为字符串,并相应地处理