如题,我要从一个像"L125*80*8"这种格式的字符串中提取出125、80和8这三个数字,并以数值的形式存入一个一维数组中,请问该如何实现?
本人很久以前学过一些Java,但基本忘光了,麻烦热心的朋友写个详细的代码给我,谢谢!

解决方案 »

  1.   

    for example
    String s = "L125*80*8";
    Pattern p = Pattern.compile("\\d+");
    Matcher m = m.matcher(s);
    List<Integer> list = new ArrayList<Integer>();
    while (m.find()) {
        list.add(Integer.valueOf(m.group()));
    }
    int a = new int[list.size()];
    for (int i=0; i<list.size; i++) {
        a[i] = list.get(i);
    }
    System.out.println(Arrays.toString(a));or
    String s = "L125*80*8";
    String[] sa = s.splie("\\D+");
    List<Integer> list = new ArrayList<Integer>();
    for (String ss : sa) {
        if (!ss.isEmpty()) {
            list.add(Integer.valueOf(ss));
        }
    }
    int a = new int[list.size()];
    for (int i=0; i<list.size; i++) {
        a[i] = list.get(i);
    }
    System.out.println(Arrays.toString(a));
      

  2.   

    String str = "L125*80*8";
    String[] nums = str.split("[^\\d]+");
    处理一下结果,把里面的空串删掉即可
      

  3.   

    package stringhandler;import java.util.regex.Matcher;
    import java.util.regex.Pattern;
    public class MatcherTest
    {
    public static void main(String[] args)
    {
    String str=null;
    if(args.length>0)
    str=args[0];
    else
    str="L125*80*8";
    Pattern pattern=Pattern.compile("\\d+");
    Matcher matcher=pattern.matcher(str);
    while(matcher.find()){
    System.out.println(matcher.group());
    }
    }
    }
      

  4.   

    String str = "L125*80*8";
            String[] nums = str.split("[^\\d]+");
      

  5.   

    import java.util.ArrayList;
    import java.util.List;
    import java.util.StringTokenizer;public class Test {
    public static void main(String[] args) {
    List<Integer> li = new ArrayList<Integer>();
    String str = "L125*80*8" ;
    String reg = "\\D+";
    String de  = "*";
    String str1 = str.replaceAll(reg, de);
    StringTokenizer st = new StringTokenizer(str1,de);
    while(st.hasMoreTokens())
    {
    li.add(Integer.parseInt(st.nextToken()));
    }
    }
    }