当前位置: 代码迷 >> J2EE >> 【议论】java判断是否是数字,并转换为int类型
  详细解决方案

【议论】java判断是否是数字,并转换为int类型

热度:47   发布时间:2016-04-22 00:31:32.0
【讨论】java判断是否是数字,并转换为int类型。
以下是我的代码:

Java code
    /**     * 判断是否是Integer类型     * @author daichangfu     * @param str     * @return     */    public boolean isNumber(String str){        if(str!=null&&!"".equals(str.trim())){            Pattern pattern = Pattern.compile("[0-9]*");             Matcher isNum = pattern.matcher(str);            Long number = 0l;            if(isNum.matches()){                number=Long.parseLong(str);            }else{                return false;            }            if(number>2147483647){                return false;            }        }else{            return false;        }        return true;    }


当我的URL参数从前台传过来的时候,我需要在后台先判断是否是数字,然后对其进行类型转换,我们头要求不论客户在地址栏怎么输入参数都不能报错。

但是我判断了参数都是数字,但是它的大小超过了int的长度会报错,所以我把它先转换成了Long型,然后判断,但是如果它输入的大小超过了Long一样会报错啊....。 请问大家,这个我改怎么办?

------解决方案--------------------
你只要判断的话,很容易,直接number=Long.parseLong(str);

try catch一下,有异常,return false

否则return true
------解决方案--------------------
Java code
    public static boolean isNumber(String str){                        if(str==null||str.length()==0)            return false;                char c[]=str.toCharArray();        for (int i = 0; i < c.length; i++) {            if(!Character.isDigit(c[i])){                return false;            }        }        //到此确认是数字        //其他操作        return false;    }
------解决方案--------------------
Java code
boolean b = org.apache.commons.lang.math.NumberUtils.isNumber("123");
  相关解决方案