在JAVA中,判断一个字符串是否是数字(正数)格式,正则表达式怎么写 ?
如"0" 是数字格式; 
"12" 是数字格式;
"123.45" 是数字格式;
"12a" 不是数字格式。
"12a.33" 不是数字格式。谢谢!

解决方案 »

  1.   

    public static boolean isNumber(String str) {
           return str.matches("[\\d.]+");
      }
      

  2.   

    public static boolean isNumber(String str) {
           return str.matches("[\\d]+[.]?[\\d]+");
      }      public static void main(String[] args){
            System.out.println("isNumber(\"0\"): " + isNumber("0"));
            System.out.println("isNumber(\"213\"): " + isNumber("213"));
            System.out.println("isNumber(\"124312a\"): " + isNumber("124312a"));
    System.out.println("isNumber(\"124312a.13\"): " + isNumber("124312a.13"));
            System.out.println("isNumber(\"12.431.213\"): " + isNumber("12.431.213"));
    System.out.println("isNumber(\"124312.13\"): " + isNumber("124312.13"));
          }output:
    isNumber("0"): false
    isNumber("213"): true
    isNumber("124312a"): false
    isNumber("124312a.13"): false
    isNumber("12.431.213"): false
    isNumber("124312.13"): true
      

  3.   


    //import java.util.regex.*;
    public static boolean isData(String str)
      {
        String regex="^(-|\\+)?\\d+\\.?\\d*$";
        String regex1="^(-|\\+)?0+\\d+\\.?\\d*$";
        Pattern ptn=Pattern.compile(regex);
        Matcher mat=ptn.matcher(str);
        boolean result=mat.matches();
        System.out.println(">>> first result = "+result);
        if (result)
        {
          ptn=Pattern.compile(regex1);
          mat=ptn.matcher(str);
          System.out.println(">>> second result = "+mat.matches());
          result=!mat.matches();
        }
        mat=null;
        ptn=null;
        System.out.println(str+" is data ? "+result);
        return result;
      }
      

  4.   

    import java.util.regex.*;Pattern p=null; //正则表达式Matcher m=null; //操作的字符串
    boolean b;p = Pattern.compile("[\d]*[.]?[\d]*");  m = p.matcher("baaaaab");  b = m.matches("124312.13");  b=true;
        b=m.matches("124312a"); b=false;