-2

Java正規表現に苦労しています。数値がゼロより大きく、負であってはならないかどうかを検証したい

0.00011 - GOOD
1.222 - GOOD
0.000 - BAD
-1.1222 - BAD

したがって、ゼロを超えるものは何でも問題ありません。これはJava正規表現で可能ですか?

4

4 に答える 4

2

なぜ正規表現?

あなたは単に次のようなことをすることができます

 double num=0.00011;
    if(num>0){
        System.out.println("GOOD");
    }else{
        System.out.println("BAD");
    }

または、これを難しい方法でラリーしたい場合は、次のようなことも試すことができます

 String num="-0.0001";
   char sign=num.split("\\.")[0].charAt(0);
   if(sign=='-' || Double.parseDouble(num)==0.0){
       System.out.println("BAD");
   }else {
       System.out.println("GOOD");
   }
于 2013-08-06T06:01:13.787 に答える
2

これを正規表現で行わないでください。でこれを行いBigDecimalます:

// True if and only if number is strictly positive
new BigDecimal(inputString).signum() == 1
于 2013-08-06T05:57:39.847 に答える
1

試す

^(0\\.\\d*[1-9]\\d*)|([1-9]\\d*(\\.\\d+)?)$

どっちが合う

0.1
0.01
0.010
0.10
1.0
1.1
1.01
1.010
3

だがしかし

0
0.0
-0.0
-1
-0.1
于 2013-08-06T06:19:36.157 に答える