1 A,1 B,2 A,2 B,2 C
转换为
1 AB,2 ABC

解决方案 »

  1.   

    随便写了个  可以自己改改! Map map = new HashMap();
    String str = "1 A,1 B,2 A,2 B,2 C";
    String strs[] = str.split(",");
    for (int i = 0; i < strs.length; i++) {
    strs[i].split(" ");
    if(map.containsKey(strs[i].split(" ")[0])){
    map.put(strs[i].split(" ")[0],map.get(strs[i].split(" ")[0]) + strs[i].split(" ")[1]);
    }else{
    map.put(strs[i].split(" ")[0], strs[i].split(" ")[0] + " " + strs[i].split(" ")[1]);
    }
    }

    for (Object key : map.keySet()) {
    System.out.println(map.get(key));
    }
      

  2.   


    package work.helper;import java.util.HashMap;
    import java.util.Map;public class Test {
    public static void main(String[] args) {
    String s="1 A,1 B,2 A,2 B,2 C";
    String result="";
    String[] str=s.split(",");
    Map<String,String> map=new HashMap<String,String>();
    for(int i=0;i<str.length;i++){
    String[] ss=str[i].split(" ");
    if(map.get(ss[0])==null){
    map.put(ss[0],ss[1] );
    }else{
    String key=ss[0];
    String value=map.get(ss[0]);
    value+=ss[1];
    map.remove(ss[0]);
    map.put(ss[0], value);
    }
    }

    for(Object o:map.keySet()){
    result+=o+" "+map.get(o)+",";
    }
    System.out.println(result);
    result=result.substring(0, result.length()-1);
    System.out.println(result);
    }
    }
    结果2 ABC,1 AB
    我在考虑改改输出顺序
      

  3.   

    排序的话 就将键设置为Integer 然后将所有键弄成一个数组 数组排序  ok! 代码懒的写
      

  4.   

    package com.vingsoft.ggzyjyjc.vo;import java.util.HashMap;
    import java.util.Map;
    import java.util.TreeMap;public class Test {
    public static void main(String[] args) {
    String source="1 A,1 B,2 A,2 B,2 C,3 E,3 D";
    Map<String,String> map=new HashMap<String, String>();
    String result="";
    for(String string:source.split(",")){
    String[] reg=string.split(" ");
    map.put(reg[0],map.containsKey(reg[0])?map.get(reg[0])+reg[1]:reg[1]);
    }
    for(Object key:new TreeMap(map).keySet())
    result+=(key+map.get(key)+",");
    System.out.println(result);
    }
    }
    我用的treemap自己排了一下,也可以自定义排序,但总觉得很繁琐,看楼下怎么说
      

  5.   


    package work.helper;import java.util.HashMap;
    import java.util.Map;public class Test {
    public static void main(String[] args) {
    String s="1 A,1 B,2 A,2 B,2 C";
    String result="";
    String[] str=s.split(",");
    Map<String,String> map=new HashMap<String,String>();
    for(int i=0;i<str.length;i++){
    String[] ss=str[i].split(" ");
    if(map.get(ss[0])==null){
    map.put(ss[0],ss[1] );
    }else{
    String key=ss[0];
    String value=map.get(ss[0]);
    value+=ss[1];
    map.remove(ss[0]);
    map.put(ss[0], value);
    }
    }

    for(int i=0;i<5;i++){
    if(map.get(Integer.toString(i))!=null){
    result=result+i+" ";


    result+=map.get(Integer.toString(i));

    result=result+",";
    }
    }

    result=result.substring(0, result.length()-1);
    System.out.println(result);
    }
    }
    稍微改了一下,记得那个i值调到字符串里面最大的那个值就行了
    结果:1 AB,2 ABC