比如已知字符串: “AR1”、“TR1A”、"TR1B"...等等, 
我如何提取其中的数字呢?
谢谢!

解决方案 »

  1.   

    java中能运行正则的方法好像不多!具体怎么写啊?
      

  2.   

    是这样吗???
    package test;import java.util.ArrayList;
    import java.util.List;/**
     * @author mingjian.zheng
     */
    public class Test {
    private static List<String> list = new ArrayList<String>();
    private static int num = 0;
    public static void getNum(String[] strs){
    StringBuffer sb = new StringBuffer();
    for(int i=0;i<strs[num].length();i++){
    if(strs[num].charAt(i)>='0' && strs[num].charAt(i)<='9'){
    sb.append(strs[num].charAt(i));
    }
    }
    list.add(sb.toString());
    num++;
    if(num < strs.length){
    getNum(strs);
    }else{
    return;
    }

    }
    public static void main(String[] args) {
    String[] strs = {"A4R1","T4R1A","TR1B"};
    getNum(strs);
    for(int i=0;i<list.size();i++){
    System.out.println(list.get(i));
    }
    }
    }
    运行结果:
    41
    41
    1
      

  3.   

    说说用正则该怎么写?难道用Pattern?没用过吖,感觉好像挺麻烦...
      

  4.   

    没用过 就多google 那样学的就深刻些
                    //这个只是匹配一个数字的正则表达式
    Pattern pattern = null;
    Matcher matcher = null;
    String reg ="\\d"; pattern = Pattern.compile(reg);
    matcher = pattern.matcher("1A");
    if(matcher.find())
        System.out.println("This is "+matcher.group());

      

  5.   

    谢谢楼上的教诲~
    其实我也google了,那些例子都挺复杂的...所以就没怎么看明白!
    ( ⊙o⊙ )嘿嘿!见笑~
      

  6.   


    public static String getNum(String str) {
    Pattern pattern = Pattern.compile("\\d+"); 
    Matcher matcher = pattern.matcher(str); 
    while (matcher.find()) { 
    return matcher.group();
    }
    return null;
    }