日期:2014-05-20  浏览次数:20761 次

java基础的一点小问题..取出字符串中的数字部分
201 一般公共服务
202 外交
2040101
2010303
201 一般公共服务
202 外交
2040101
2010303
------------------------
比方说有如上这些数据吧..有的数据后面可能有中文.而有的.没的....
请问.如何进行判断其是否是纯数字.如果 不是.怎么取出.其数字部分?

------解决方案--------------------
可以用split()方法返回一个数组,然后遍历得到一个纯数字字符串
如:
Java code

public void getInt(String str){
   String[] arr = str.split("[^0-9]");
   String s = "";
   for(int i=0;i<arr.lenght;i++){
      s+=arr[i];
   }
}

------解决方案--------------------
1.读取一行,放到变量line里面;
2.line = line.replaceAll("\\D", "");
3.line就是纯数字了。
------解决方案--------------------
Java code

    public static void main(String[] args) {
        String str = "201 一般公共服务 "         + "\r\n" +
                    "202 外交"                  + "\r\n" +
                    "2040101"                  + "\r\n" +
                    "2010303"                   + "\r\n" +
                    "201 一般公共服务"          + "\r\n" +
                    "202 外交"                 + "\r\n" +
                    "2040101"                  + "\r\n" +
                    "2010303"                 + "\r\n"
        ;
        Matcher matcher = Pattern.compile("\\d+").matcher(str);
        while (matcher.find()) {
            System.out.println(matcher.group());
        }
    }