由于不支持正则表达式在一个方法里面接收一个String类型的串,如何去判断它是否是在0到9之间的数字,而非其他符号或者字母,不能使用正则表达式的话,我是这样做的:
 if (Integer.parseInt(String.valueOf(s.charAt(k))) <= 9 && Integer.parseInt(String.valueOf(s.charAt(k))) >= 0) {
                z = true;
            }
我记得char和int本来存储时候都是一个类型的,这里不需要去Integer.parseInt一个String也可以直接判断char的,但是在程序里面测试了下,判断不出来;但是使用了Integer.parseInt的话,这里要是接收到的是一个字母或者符号就会出异常,请问这种情况怎么解决呢?我是菜鸟。请各位大侠帮帮忙哦~!

解决方案 »

  1.   

     public boolean isInteger(String str) {
            boolean result = true;
            for (int k = 0; k < str.length(); k++) {
                if (48 > (int) str.charAt(k) || (int) str.charAt(k) > 53) {
                    result = false;
                }
            }
            return result;
        }
      

  2.   

    意思同上,用ASCII码做判断的范围
      

  3.   


       boolean b = false;
       String str = "aa";
       try{
         Integer.parseInt(str);
         b = true;
       }catch(NumberFormatException e){
         b = false;
       }
    给了一种比较变态的办法,好孩子一般都不这么用