理解你的意思!
你就是想判断输入字符串是否为数字!
问题很简单,要清楚并不是要转换成数字等。不是那么复杂。
如果我没判断错误的话,完全可以利用【NumberFormatException e】来判断是否为数字!
祝你好运!

解决方案 »

  1.   

    有没有类似于isNumber这样的函数,可否给一个完整的代码
    非常感谢
      

  2.   

    转成char型,然后用比较。或把string型的变量强行转换成数字型,如果异常就不是数字。
    如:Integer.parseInt(“123”);
      

  3.   

    同意  sdlichuanxin(传欣) try {
          int a = Integer.parseInt("aaa");
           System.out.println("数字");
           }
        catch (Exception e) {
     System.out.println("非数字");            }
      

  4.   

    public boolean isNumber(String number){
       return Pattern.matches(""\\d{1,}\\.?\\d*?",number);
    }采用正则表达式来测试其是不是由数字和点组成。这个方法可以测试出其是不是整数,或是浮点数。当然像 "2."这样的数在这里也成合法的了。大家有兴趣的可以完善下。
      

  5.   

    同意  sdlichuanxin(传欣) try {
          int a = Integer.parseInt("aaa");
           System.out.println("数字");
           }
        catch (Exception e) {
     System.out.println("非数字");            }
    这个方法一定不要用.CATCH中不可以做数据处理.把STRING中每一个字符和"0"1"2"3"4"5"6"7"8"9"进行比较.如果都通过就是数字.如果中间没通过就不是.
      

  6.   

    public booleaen isNumber(String str){
    try{
    Double.parseDouble(str);
    return true;
    }
    catch(Exception e){
    return false;
    }
    }这样也可以的。
      

  7.   

    -----------------
    这个方法一定不要用.CATCH中不可以做数据处理
    --------------------
    这不一定吧?
      

  8.   

    强烈建议用正则表达式,JAVA中不管在任何时候都不推荐用异常机制来进行校验,如果一定要用,是用效能来做代价的
      

  9.   

    public booleaen isNumber(String str){
    try{
    Double.parseDouble(str);
    return true;
    }
    catch(Exception e){
    return false;
    }
    }这个好~
      

  10.   

    可以判断是否在123456789中
    捕捉异常的方法,apache的一些源程序文件中,也是这么判断的,不过我感觉怪怪的
      

  11.   

    如果数字的String型转换成int或者别的类型发生越界的话,捕捉异常的方法不可取!!!
      

  12.   

    个人认为:
    public boolean isNumber(String number){
       return Pattern.matches(""\\d{1,}\\.?\\d*?",number);
    }比较适合解决这个问题
      

  13.   

    sammy791010(javabird) 的正则表达式,有点问题,这个是我写的,觉得比较好!
        public boolean isNumber(String number) {
            return Pattern.matches("[\\+|\\-]?[0-9]+\\.?[0-9]*",number);
        }
      

  14.   

    allenhe() ( ) 信誉:100  2004-04-17 07:57:00  得分:0 
     
     
     " 数字不能以0开头 "谁说的,“0”不是数字吗?,“0.1”不是数字吗!!!
      
     
      

  15.   

    就知道你会这么说
    你再看看你的regex
    001不是过了么当然,你的(将来的?)用户喜欢把1写作000001那是例外
      

  16.   

    public boolean isNumber(String number) {    
        boolean b = Pattern.matches("[\\+|\\-]?[1-9]+[0-9]*\\.?[0-9]*",number);
        if (!b) {
          b  = Pattern.matches("[\\+|\\-]?[0]\\.+\\d*",number);
        }    
        if (!b) {
            b = Pattern.matches("[0]",number);
          }
        return b;
       }假如number为数字,可以分为三种情况:
    1.绝对值abs(number) = 0;
    2.abs(number)∈(0,1);
    3.abs(number)∈[1,+∞);此处的 isNumber 函数可消除 001 也能过这种情况
      

  17.   

    try {
          int a = Integer.parseInt("aaa");
           System.out.println("数字");
           }
        catch (Exception e) {
     System.out.println("非数字");            }
      

  18.   

    推荐使用正规表达式,不过如果觉得理解不了正规表达式,则可以用如下方法:
    String[] str={"0","2","3","4","5","6","7","8","9","."};
    string var="sdfsf99";
    然后使用for()
    {
      if(!var.indexOf(str[i]))
      return false;
    }
    这是一种方法,可以做为参考!