Java中的多个拆分

时间:2012-01-03 06:27:59

标签: java

我有一个包含以下数据的字符串:

user_id:16|login_id:6|pass_id:6|email:abc@abc.com|product_id:|name:Mike|created_date:20120101:12:22|address:US

如何在Java中获取每个字段?

我可以使用split但后来如何获得冒号分隔符?另外,我如何处理created_date,因为它有2个冒号,所以我将无法用冒号分隔。

另请注意,product_id为空。

非常感谢Java 1.6中的任何示例。

谢谢!

2 个答案:

答案 0 :(得分:4)

我想到的第一个解决方案是:(不确定这是否有效)

  1. |
  2. 拆分字符串
  3. 使用String类的substring和indexOf来获取结果。
  4. 示例:

    String str = "user_id:16|login_id:6|pass_id:6|email:abc@abc.com|product_id:|name:Mike|created_date:20120101:12:22|address:US";
    String[] strArr = str.split("\\|");
    for (String string : strArr) {
        System.out.println("First part: " + string.substring(0, string.indexOf(":")));
        System.out.println("Second part: " + string.substring(string.indexOf(":")+1));
        System.out.println();
    }
    

    假设:名称中没有:(第一部分)。即第一个:将始终位于完整名称(第一部分)之后,然后是值(第二部分)。

答案 1 :(得分:0)

只有当您非常确定从源获取的数据始终严格遵循此标准时,您才可以使用此技术(分隔字符串)。

另外找一些其他技术,最好是XML或JSON。