我有一个List里面存放了一些字符串,
如  list="tc1,tc2,tc4,bo5,bi9,bo1,bi8,cg1,cg3,cg5,b2n,b3n,b4n,cg4,cg8"
我要把上面 list里的字符串分别把字母相同的放入新的数组里
如    list1="tc1,tc2,tc4"
     list2="bo5,bo1"
      list3="bi9,bi8"
     list3="cg1,cg3,cg5,cg4,cg8"
     list4="b2n,b3n,b4n"希望各位大虾把代码贴出来看看

解决方案 »

  1.   

    每一个item抽取字母,再做比较
      

  2.   

                    String s = "af23t";
    System.out.println(s.replaceAll("\\d", ""));
    System.out.println(s);
    如果你字符串里只有字母和数字,那么就可以直接替换掉数字,得到字母
      

  3.   


    这个得到字母我已经处理了,感觉实现不了我想要的
     我想要的是
         list1="tc1,tc2,tc4" 
         list2="bo5,bo1" 
        list3="bi9,bi8" 
        list4="cg1,cg3,cg5,cg4,cg8" 
        list5="b2n,b3n,b4n" map('tc',list1);
    map('bo',list2);
    map('bi',list3);
    map('cg',list4);
    map('bn',list5);
      

  4.   

    import java.util.Collection;
    import java.util.Hashtable;
    public class SameChars { public static void main(String[] args){
    String list="tc1,tc2,tc4,bo5,bi9,bo1,bi8,cg1,cg3,cg5,b2n,b3n,b4n,cg4,cg8";
    String[] items=list.split(",");
    Hashtable<String,StringBuffer> result=new Hashtable<String,StringBuffer>();
    for(int i=0; i<items.length;i++){
    String curStr=items[i];
    String curStrNoNum=curStr.replaceAll("\\d*", "");
    if (result.containsKey(curStrNoNum)){
    StringBuffer sb=result.get(curStrNoNum);
    sb.append(",");
    sb.append(curStr);
    }else{
    StringBuffer sb=new StringBuffer(curStr);
    result.put(curStrNoNum, sb);
    }
    }

    Collection<StringBuffer> whatYouWant=result.values();
    for(StringBuffer sb:whatYouWant){
    System.out.println(sb);
    String[] segs=sb.toString().split(",");
    }
    }
    }
      

  5.   

    5楼的   能不能实现   
     list1="tc1,tc2,tc4" 
        list2="bo5,bo1" 
        list3="bi9,bi8" 
        list4="cg1,cg3,cg5,cg4,cg8" 
        list5="b2n,b3n,b4n" map('tc',list1); 
    map('bo',list2); 
    map('bi',list3); 
    map('cg',list4); 
    map('bn',list5);这种??   帮忙解决感激不尽
      

  6.   


    五楼的 你没有处理 后面有字母的啊
     如 b2n,b3n,b4n  像这样的话你没处理