【发布时间】:2011-11-25 21:37:21
【问题描述】:
我有一个字符串需要拆分为 2。我想通过在第三个逗号处拆分来做到这一点。
我该怎么做?
编辑
一个示例字符串是:
from:09/26/2011,type:all,to:09/26/2011,field1:emp_id,option1:=,text:1234
字符串将保持相同的格式 - 我想要字符串中字段之前的所有内容。
【问题讨论】:
我有一个字符串需要拆分为 2。我想通过在第三个逗号处拆分来做到这一点。
我该怎么做?
编辑
一个示例字符串是:
from:09/26/2011,type:all,to:09/26/2011,field1:emp_id,option1:=,text:1234
字符串将保持相同的格式 - 我想要字符串中字段之前的所有内容。
【问题讨论】:
如果您只是对在第三个逗号的索引处拆分字符串感兴趣,我可能会这样做:
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
相关问题:
【讨论】:
"," 并将您想要组合在一起的部分连接在一起。
一个简单的实现
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"]
【讨论】:
你可以使用这个正则表达式:
^([^,]*,[^,]*,[^,]*),(.*)$
结果在两个捕获(1 和 2)中,不包括第三个逗号。
【讨论】: