把String转化成char[]数组,逐一取出来对比ascii码值,码值我忘记了,在"0"到"9"的码值之间的,就都是数字

解决方案 »

  1.   

    测试:
            String s = "aaa bbb ccc 123 aaa bbb ccc 032123 vvv";
            StringTokenizer st=new StringTokenizer(s);
            while(st.hasMoreTokens()){
                int result=0;
                boolean isDigit=true;
                char[] chs=st.nextToken().toCharArray();
                for(int i=0,len=chs.length;i<len;i++){
                    if((Character.isDigit(chs[i]))){
                        result+=Character.digit(chs[i],10)*Math.pow(10,len-i-1);
                    }else{
                        isDigit=false;
                        break;
                    }
                }
                if(isDigit){
                    System.out.println(result);
                }
            }结果:12332123
      

  2.   

    根据s的规则做自己想要的        String s = "aaa bbb ccc 123.32 aaa bbb ccc 0321.23 vvv";
            StringTokenizer st=new StringTokenizer(s);
            while(st.hasMoreTokens()){
                try {
                    float result=Float.parseFloat(st.nextToken());
                    System.out.println(result);
                }
                catch (NumberFormatException ex) {
                }
            }