;3、好好好;5、不不不
想到的结果是,分号后面,顿号前面的,也就是3和5,谢谢!

解决方案 »

  1.   

    import java.util.LinkedList;
    import java.util.List;
    public class MySubStr 
    {
    public static void main(String[] args) 
    {
    String str = ";3、好好好;5、不不不";
    List<String> list = subStr(str);
    System.out.println(list);
    }

    private static List<String> subStr(String str)
    {
    StringBuffer sb = new StringBuffer();
    List list = new LinkedList<String>();
    char[] chArr = str.toCharArray();
    for(char ch : chArr)
    {
    String tmpStr = String.valueOf(ch);
    if(tmpStr.equals(";"))
    {
    sb = new StringBuffer();
    sb.append(tmpStr);
    }
    if(tmpStr.equals("、") && null != sb && sb.indexOf(";") >= 0)
    {
    list.add(sb.toString().substring(2));
    sb = new StringBuffer();
    }
    else
    {
    sb.append(tmpStr);
    }
    }
    return list;
    }
    }
      

  2.   


    package com.xxm.csdn;import java.util.regex.*;public class RETest { public static void main(String[] args) {
    String str = ";3、dfsa;5、fdsa "; Pattern p = Pattern.compile("([;])\\d+([、])");
    Matcher m = p.matcher(str); while (m.find()) {
    String s = m.group();
    System.out.println(s.substring(1, s.length() - 1));
    } }}
      

  3.   


    package com.xxm.csdn;import java.util.regex.*;public class RETest { public static void main(String[] args) {
    String str = ";3、好好好;5、不不不"; Pattern p = Pattern.compile("([;])\\d+([、])");
    Matcher m = p.matcher(str); while (m.find()) {
    String s = m.group();
    System.out.println(s.substring(1, s.length() - 1));
    } }}