今天要做一个根据字符串分组,然后集体执行一个操作,想了一上午,动态创建数组什么的,最后还是用了list。
List allList=new ArrayList();
String m1="a123_x1";
String m2="a124_x1";
String m3="a125_x2";
String m4="a126_x2";
String m5="a127_x3";
String m6="a128_x3";
String m7="a129_x3";
allList.add(m1);
allList.add(m2);
allList.add(m3);
allList.add(m4);
allList.add(m5);
allList.add(m6);
allList.add(m7);
String sufxList="";
for(int i=0;i<allList.size();i++){
String picId =(String) allList.get(i);
String sufx = picId.substring(picId.lastIndexOf("_")+1);
String id = picId.substring(0,picId.lastIndexOf("_"));
String aaj="";
if(sufxList.indexOf(sufx)==-1){
sufxList=sufxList +"&" +sufx; //如果没有重复的后缀,也就是第一次出现,则把后缀加入进来。
}
System.out.println(sufx + "-------------"+id);
}
System.out.println("sufxList.................."+ sufxList);
String[] aa=sufxList.split("&");
//System.out.println("aa.length============"+ (aa.length));
// if(aa.length==4){
// System.out.println("aa[]........"+ aa[3]);
// }
for(int j=1;j<aa.length;j++){
List<String> list=new ArrayList();
//System.out.println("aa===="+ aa[j]);
//aaj=aa[j];
System.out.println("当查询含有“"+aa[j]+ "“时");
for(int n=0;n< 7;n++){
String memb=(String)allList.get(n);
//System.out.println("aaj------------"+aaj);
if(memb.indexOf(aa[j])!=-1){ //说明里面有X1/X2/x3,所以放入X1组里去
list.add(memb);
System.out.println("list的长度是。。。。。。。。。。。。"+list.size());
}
}
for(int r=0;r<list.size();r++){
System.out.println("list每个元素。。。。。。。。"+ list.get(r));
}
}
执行结果为:
x1-------------a123
x1-------------a124
x2-------------a125
x2-------------a126
x3-------------a127
x3-------------a128
x3-------------a129
sufxList..................&x1&x2&x3
当查询含有“x1“时
list的长度是。。。。。。。。。。。。1
list的长度是。。。。。。。。。。。。2
list每个元素。。。。。。。。a123_x1
list每个元素。。。。。。。。a124_x1
当查询含有“x2“时
list的长度是。。。。。。。。。。。。1
list的长度是。。。。。。。。。。。。2
list每个元素。。。。。。。。a125_x2
list每个元素。。。。。。。。a126_x2
当查询含有“x3“时
list的长度是。。。。。。。。。。。。1
list的长度是。。。。。。。。。。。。2
list的长度是。。。。。。。。。。。。3
list每个元素。。。。。。。。a127_x3
list每个元素。。。。。。。。a128_x3
list每个元素。。。。。。。。a129_x3
这样就可以对每一组进行操作了。