日期:2014-05-17  浏览次数:20712 次

各位牛人进来看看
两个String字符串:
num1="one,123.0|rt,678.0|two,21.0|shi,123.0"
 
num2="one,45.0|shi,78.0|two,89.0|yu,84.0"
我想得到的是:
num3="one,123.0|shi,123.0|two,21.0|yu,84.0"
num1与num2里面那个‘,’前面的字符相同,就把mun2 逗号 后面的数字改成num1逗号后面的数字。
需求是这样的,他们保存的是一组物品的id和价格,格式:(id,价格|id,价格)
现在num1里面的有些物品id可能和num2里面的物品id相同,当num1里物品价格改变时,相应的num2里物品的价格也要改变、

------解决方案--------------------
把num1字符串放入缓存中,把num1和num2字符串截取,得出【id,价格】的数组,遍历数组num1,循环内遍历num2,截取字符串得到id,判断num1中的id在num2中是否存在,得出缓存中NUM1数组这个ID对应的价格,如果缓存中的价格和NUM1中的价格不符,就把NUM1的价格更新到num2中
------解决方案--------------------
申明个Num类来转换字符串吧



package csdn;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;


public class Num {

    public HashMap<String, WuPin> wupins = new HashMap<String, WuPin>();
    
    public Num(String num){
        String[] strs = num.split("[
------解决方案--------------------
]");
        for(String str : strs){
            String[] str_wupin = str.split(",");
            wupins.put(str_wupin[0], new WuPin(str_wupin[0], str_wupin[1]));
        }
    }
    
    public String toString(){
        String result = "";
        
        Iterator<Entry<String, WuPin>> iter = wupins.entrySet().iterator(); 
        while (iter.hasNext()) {
            if (result.length() > 0){
                result = result + "