0 0

java字符串解析5

源字符串    22:w,22:c,21:r,7:r,7:w,7:c,8:w,8:c,8:d,9:r,9:w,9:c,9:d,10:r

目标字符串  22:w,22:c;21:r;7:r,7:w,7:c;8:w,8:c,8:d;9:r,9:w,9:c,9:d;10:r

对于源字符串含义 22:w 代表 编号为22的国家拥有的权限为w, 想将源字符串格式为 国家编号1:权限a,权限b;国家2:权限c,权限.....

用java 解析 或正则表达式
问题补充:
我的问题解决了,跟你用的方法差不多,但还是要感激回帖的人,希望有类似的问题的人不再有问题
OO 
2008年12月09日 13:42

1个答案 按时间排序 按投票排序

0 0

采纳的答案

public static void main(String[] args) {

        String source = "22:w,22:c,21:r,7:r,7:w,7:c,8:w,8:c,8:d,9:r,9:w,9:c,9:d,10:r";
        String result = parse(source);

        System.out.println(result);
    }

    public static String parse(String source) {
        List<String> list = null;
        StringBuffer buffer = new StringBuffer();
        String result = null;
        Map<String, List<String>> map = new HashMap<String, List<String>>();
        
        String[] array = source.split("\\,");

        for(String e : array) {
            String[] entry = e.split(":");
            String key = entry[0];
            String value = entry[1];

            if(map.get(key) == null) {
                list = new ArrayList<String>();
                list.add(value);
                map.put(key, list);
            } else {
                list = map.get(key);
                if(!list.contains(value)) {
                    list.add(value);
                }
            }
        }

        Iterator iter = map.keySet().iterator();
        while(iter.hasNext()) {
            String key = (String) iter.next();
            list = map.get(key);
            buffer.append(key + ":");
            for(int i = 0; i < list.size(); i++) {
                buffer.append(list.get(i));
                if(i != list.size() - 1) {
                    buffer.append(",");
                }
            }

            buffer.append(";");
        }

        result = buffer.toString();

        if(buffer.charAt(buffer.length() - 1) == ';')  {
            result = result.substring(0, result.length() - 1);
        }

        return result;
    }

输出
21:r;10:r;7:r,w,c;22:w,c;9:r,w,c,d;8:w,c,d

2008年12月09日 17:38

相关推荐

Global site tag (gtag.js) - Google Analytics