从用户的输入传过来一个String,判断这个String是不是数字private boolean isNumeric(String str)
{

try { Double.parseDouble(str); }
catch(NumberFormatException de)
{ return false; }
return true;
}这样写是不是太那个。。请教更好的办法

解决方案 »

  1.   

    楼主可以先判断每一位是不是digit或者是dot,然后再弄个正则试判断是不是一个合法的数字
      

  2.   

    public class ssss {
      public static void main(String[] args) {
        System.out.println(isnum("35555.75555"));
      }
      public static boolean isnum(String str) {
        return str.matches("^(\\+|\\-|)[0-9]+(\\.[0-9]*)*$");  }
    }
      

  3.   

    private boolean isNumeric(String str)
    { String strTemp = "0123456789";
    int j = 0;
    if(str.length==0)
    {
    //System.out.println("is null");
    return false;
    }
    else
    {
    for(int i=0;i<str.length;i++)
    {
    j=strTemp.indexOf(str.charAt(i));
    if(j==-1)
    {
    //System.out.println(is not number!);
    return false;
    }
    }
    //System.out.println("is number!");
    return true;
    }}
      

  4.   

    噢,Sorry!上面代码还停留在其他语言上的,不好意思,上面的str.length改为str.length()
      

  5.   

    刚才的有点小错,改动如下:
    public static boolean isnum(String str) {
    return str.matches("^(\\+|\\-|)[0-9]+((\\.[0-9]*)|)$");
    }
      

  6.   

    谢谢chuanke((C ) 2005【空间代数】. All rights reserved .) 这样对比,这才验证了使用正则表达式的好处,