Java在第三个逗号上拆分字符串

时间:2011-09-27 09:48:21

标签: java regex string split

我有一个字符串,我需要分成2个。我想通过完全分开第三个逗号来做到这一点。

我该怎么做?

修改

示例字符串是:

from:09/26/2011,type:all,to:09/26/2011,field1:emp_id,option1:=,text:1234

字符串将保持相同的格式 - 我希望字符串中的字段前的所有内容。

3 个答案:

答案 0 :(得分:4)

如果您只是想将字符串拆分为第三个逗号的索引,我可能会这样做:

String s = "from:09/26/2011,type:all,to:09/26/2011,field1:emp_id,option1:=,text:1234";

int i = s.indexOf(',', 1 + s.indexOf(',', 1 + s.indexOf(',')));

String firstPart = s.substring(0, i);
String secondPart = s.substring(i+1);

System.out.println(firstPart);
System.out.println(secondPart);

<强>输出:

from:09/26/2011,type:all,to:09/26/2011
field1:emp_id,option1:=,text:1234

相关问题:

答案 1 :(得分:2)

一个天真的实现

public static String[] split(String s)
{
    int index = 0;
    for(int i = 0; i < 3; i++)
        index = s.indexOf(",", index+1);

    return new String[] {
            s.substring(0, index),
            s.substring(index+1)
    };
}

这没有边界检查,如果没有按预期输入,将抛出各种可爱的异常。给定"ABCD,EFG,HIJK,LMNOP,QRSTU"返回["ABCD,EFG,HIJK","LMNOP,QRSTU"]

答案 2 :(得分:1)

您可以使用此正则表达式:

^([^,]*,[^,]*,[^,]*),(.*)$

然后结果是两个捕获(1和2),不包括第三个逗号。