如何检查字符串是正数,负数还是数字

Gin*_*ead -4 java

问题

我有一个String,我想知道这String是一个数字,它也可能是一个负数

测试用例

String test1  = "abcd";     // Here it must show is not a number
String test2  = "abcd-123"; // Here it must show is not a number
String test3  = "123";      // Here it must show is a number
String test4  = "-.12";     // Here it must show is a number
String test5  = "-123";     // Here it must show is a number
String test6  = "123.0;     // Here it must show is a number
String test7  = "-123.00";  // Here it must show is a number
String test8  = "-123.15";  // Here it must show is a number
String test9  = "09";       // Here it must show is a number
String test10 = "0.0";      // Here it must show is a number
Run Code Online (Sandbox Code Playgroud)

试过的东西

我用StringUtils#isNumberNumberUtils#isNumber,但不帮忙,负数,"09"显示为不是一个数字

kun*_*apa 5

你可以试试这个:

try {
    double value = Double.parseDouble(test1);
    if(value<0)
       System.out.println(value + " is negative");
    else
       System.out.println(value + " is possitive");
} catch (NumberFormatException e) {
    System.out.println("String "+ test1 + "is not a number");
}
Run Code Online (Sandbox Code Playgroud)

  • @WilliamDunne为什么不允许小数?该值被解析为`Double` ... (2认同)
  • 大声笑,你为什么要向所有人投票?我只是用整数写它,它与双打一样. (2认同)