一、字符串拼接的工具类
package blank.util;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import java.util.TreeMap;
import java.util.Vector;
import java.util.Map.Entry;
public class StringUtil {
public static String jointStr(String sid,String id){
Vector<String> ids=new Vector<String>();
if(sid!=null&&sid.equals(id)){
return sid;
}else{
//拆分
String[] sids=sid.split(":");
if(sids.length==1){
return id+":"+sid;
}else{
for(String i:sids){
ids.add(i);
}
if(ids.contains(id)){
String first=ids.firstElement();
if(first.equals(id)){
return sid;
}else{
//先删除
ids.remove(id);
ids.add(0, id);
String newValue="";
for(int i=0;i<ids.size();i++){
String value=ids.elementAt(i);
if(i==0){
newValue=value;
}
else{
newValue=newValue+":"+value;
}
}
return newValue;
}
}else{
return id+":"+sid;
}
}
}
}
public static String jointStr(String ids,String id,Integer num){
Map<String,Integer> map=new TreeMap<String, Integer>();
if("".equals(ids)){
return id+":"+num;
}else{
String[] tids=ids.split(",");
if(tids!=null){
for(String tid:tids){
String[] idnum=tid.split(":");
map.put(idnum[0], Integer.valueOf(idnum[1]));
}
}
if(map.containsKey(id)){
map.put(id, map.get(id)+num);
Set<Entry<String, Integer>> entities=map.entrySet();
Iterator<Entry<String, Integer>> iter=entities.iterator();
int count=0;
String newValue="";
while(iter.hasNext()){
Entry<String, Integer> entity=iter.next();
String key=entity.getKey();
Integer value=entity.getValue();
String temp=key+":"+value;
if(count==0){
newValue=temp;
}else{
newValue=newValue+","+temp;
}
count++;
}
return newValue;
}else{
ids=ids+","+id+":"+num;
return ids;
}
}
}
}
说明:第一个方法用于记录最近浏览商品的id号,拼接形式为2:3:4。当有重复浏览时,原来重复的被删除,最近一次的浏览会置前。
第二个方法用于记录购物车的商品id和数量,拼接形式为2:1,3:4,代表含义为id为2的商品数量为1,id为3的商品数量是4。