var s = "|3||2||1|";
…………
{3,2,1}
很简单的一个正则,我就是写不出,人苯了

解决方案 »

  1.   

    正则没找到,这个看看行么?
    import java.util.ArrayList;
    import java.util.List;
    public class Split {
    public static void main(String [] args) {
    String test = "|0||5||2||2||93||254|6|";
    List<String> list = split(test);
    for (int i=0;i<list.size();i++) {
    System.out.println("["+list.get(i)+"]");
    }
    }
    public static List<String> split(String string) {
    char array [] = string.toCharArray();
    List<String> list = new ArrayList<String>();
    int offsetLeft = 0;
    for (int i=0;i<array.length;i++) {
    if (array[i] > 47 && array[i] < 58 && offsetLeft == 0) {
    offsetLeft = i;
    } else if (array[i] == 124 && offsetLeft > 0) {
    list.add(new String(array,offsetLeft,i-offsetLeft));
    offsetLeft = 0;
    }
    }
    return list;
    }
    }
      

  2.   

    String[] b = s.split("\\|+");
    然后把数组里面为“”的元素忽略掉就行了