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

解决方案 »

  1.   

    可以用split()方法返回一个数组,然后遍历得到一个纯数字字符串
    如:public void getInt(String str){
       String[] arr = str.split("[^0-9]");
       String s = "";
       for(int i=0;i<arr.lenght;i++){
          s+=arr[i];
       }
    }
      

  2.   

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

  3.   


    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());
    }
    }
      

  4.   

    Pattern p = Pattern.compile("\\d+");
    String[] data = {"201 一般公共服务", "202 外交", "2040101"};
    for (String s : data) {
        Matcher m = p.matcher(s);
        while (m.find()) {
            System.out.println(m.group());
        }
    }
      

  5.   

    比如说你的一些字符串保存到一个变量中:
    public static void main(String [] args ){
    String  str = "201,205,206中文....";
    String[] temp = str.split(",");
    Pattern pattern = Pattern.compile("[0-9]*");      //用正则表达式 判断
    String rs = "";
    for(int i = 0 ;i<temp.length;i++){
       if(pattern.matcher(temp[i]).matches()){
             rs += temp[i]+",";    //将不是中文的保存到一个字符串中
       }else{
             System.out.println("包含中文..."+temp[i]);
       }
    }
    System.out.println("你想要的数据是:"+rs);
    }要是在jsp页面可以用isNaN()方法要是能帮上lz就散分 给我哈....3Q