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

相关推荐

    java字符串练习

    首先,我们要讨论的是字符串解析。在Java中,我们可以使用`String`类提供的方法或正则表达式来实现字符串的解析。例如,给定字符串“卡巴斯基#杀毒软件#免费版#俄罗斯#”,我们可以用`split()`方法,以“#”为分隔符...

    Java IO操作和将字符串解析为数值数组

    在Java编程语言中,IO(Input/Output)操作是处理数据输入和输出的关键部分,而将字符串解析为数值数组则是日常编程中常见的任务。本文将深入探讨这两个主题,并结合提供的两个文件名`TestWriteD.java`和`TestSplitD...

    使用Java操作JSON字符串对象

    使用Java操作JSON字符串对象,使用Java操作JSON字符串对象

    java解析xml字符串

    ### Java解析XML字符串 在给定的代码示例中,我们看到了如何使用JDOM库来解析一个XML字符串,并对其进行操作。下面我们将详细解析这个过程: 1. **初始化XML源**:首先,将XML字符串转化为`StringReader`对象,这...

    java字符串处理取出括号内的字符串

    在Java编程语言中,字符串处理是一项常见的任务,特别是在解析、分析或操作文本数据时。本篇文章将深入探讨如何从字符串中提取括号内的内容,主要关注于基础的字符串操作、正则表达式以及如何利用这些工具来实现目标...

    java代码-使用java解决从字符串中解析二维数组的源代码

    java代码-使用java解决从字符串中解析二维数组的源代码 ——学习参考资料:仅用于个人学习使用!

    java字符串表达式求值

    java中求字符串表达式的值看起来很伤脑筋,但如果你用BeanShell,一切都变得很简单。

    java中解析json字符串

    本文将深入探讨如何在Java中解析JSON字符串,以满足后端处理前端传递的数据需求。 首先,理解JSON的基本结构至关重要。JSON格式通常包含键值对,可以是对象(用花括号 `{}` 包裹)或数组(用方括号 `[]` 包裹)。...

    Java字符串转换为日期和时间比较大小[归类].pdf

    Java 字符串转换为日期和时间比较大小 Java 字符串转换为日期和时间比较大小是 Java 开发中常见的操作。下面我们将详细介绍两种方法来实现 Java 字符串转换为日期和时间比较大小。 方法一:使用 SimpleDateFormat ...

    xml字符串解析

    XML字符串解析首先需要理解XML的基本结构。XML文档由元素(Element)、属性(Attribute)、文本内容(Text)等构成,元素是XML的最基本组成部分,通常以尖括号 `和 `&gt;` 包裹。例如,下面是一个简单的XML字符串示例:...

    java解析Json字符串

    Java解析Json字符串是Java开发中常见的一项任务,特别是在与Web服务交互、数据交换或存储时。Json(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。在Java...

    Java字符串分隔方法split实践

    这个方法允许我们根据特定的分隔符将一个字符串分割成多个子字符串,这对于数据解析、格式转换等场景非常有用。在本文中,我们将深入探讨`split()`方法的实践应用。 `split()`方法位于`java.lang.String`类中,它的...

    JAVA日期与字符串的转换

    ### JAVA日期与字符串的转换 在Java编程中,经常需要将日期对象转化为字符串形式以便于存储或显示,或者反过来将字符串转化成日期对象来进行日期计算等操作。本文将详细介绍如何在Java中实现这两种转换。 #### 一...

    java 分解字符串

    总之,Java中的字符串分解是一个基础且重要的概念,广泛应用于数据处理、日志分析、文本解析等场景。熟练掌握`split()`方法及其背后的正则表达式原理,对于提升Java编程能力非常有帮助。通过`StringDemo_13.java`...

    使用java解析json格式的字符串

    JSON官网上推荐的使用java解析json的类库,官网下载后的是未编译打包的java文件,这是我打包后的东东,使用时直接添加进Build path即可,简单实用……

    java验证字符串是否符合json格式

    在Java编程中,验证字符串是否符合JSON(JavaScript Object Notation)格式是一项常见的任务,尤其是在进行前后端数据交互时。JSON是一种轻量级的数据交换格式,它允许数据以键值对的形式存储,易于人阅读和编写,...

    java 字符串操作类

    在Java编程语言中,字符串操作是日常开发中的重要部分,因为字符串处理无处不在,从数据解析到用户界面的交互。`StringUtil` 类是这样一个工具类,它集合了多种常用的字符串处理方法,以提高开发效率并减少代码重复...

    java 时间字符串中毫秒值时有时无,怎么解析(csdn)————程序.pdf

    在Java编程中,处理时间字符串解析时经常遇到的问题是时间格式的不一致性,尤其是在毫秒值存在或缺失的情况下。本文将详细讲解如何在Java中解析包含或不包含毫秒值的时间字符串。 首先,我们来看标题和描述中提到的...

    java字符串编码转换

    ### Java字符串编码转换详解 #### 一、Java 字符串编码转换基础 在Java中,字符串的处理是非常常见的操作之一,而字符编码是确保数据正确显示的关键因素。本篇文章将重点介绍Java中字符串编码的转换方法及其在Web...

    复杂的json字符串解析(真实案例)

    总之,理解和掌握Gson库在解析复杂的JSON字符串时的方法是Java开发者必备的技能之一。通过理解JSON结构、创建对应的Java模型以及处理可能出现的问题,我们可以有效地解析和利用JSON数据。在实际工作中,根据具体需求...

Global site tag (gtag.js) - Google Analytics