日期:2014-05-19  浏览次数:20696 次

字符串转换?急
1 A,1 B,2 A,2 B,2 C
转换为
1 AB,2 ABC

------解决方案--------------------
随便写了个  可以自己改改!

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));
}

------解决方案--------------------

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