java 分解含有双引号的字符串 20

例如:有一个字符串是:A,"1,23,4",,B,(逗号)作为分解符,但“”(双引号)里面的逗号不作为分解符。上述分解后的结果为(String数组):A1,23,4(空串... 例如:
有一个字符串是:A,"1,23,4",,B
,(逗号)作为分解符,但“”(双引号)里面的逗号不作为分解符。

上述分解后的结果为(String 数组):
A
1,23,4
(空串)
B

请用java代码实现。

谢谢各位了!!!
展开
 我来答
2471615
2007-12-01 · TA获得超过484个赞
知道小有建树答主
回答量:257
采纳率:0%
帮助的人:0
展开全部
String str = "A,\"1,23,4\",,B";
//首先把"除掉
String []stra = str.split("\"");
int i = 0;
String []temp;
List<String> result = new ArrayList<String>();
for(String s : stra){
//如果是""内的字符串则直接写入到结果集中,否则分隔,号,获取子字符串
if(i % 2 == 0){
temp = s.split(",");
if(temp.length > 0){
for(String ts : temp)
result.add(ts);
}
}else{
result.add(s);
}
i ++;
}
//打印结果集
for(String s : result){
System.out.println(s);
}

运行结果为
A
1,23,4

B
韩韩爱看剧
2007-12-01 · TA获得超过122个赞
知道小有建树答主
回答量:96
采纳率:0%
帮助的人:0
展开全部
照你的意思是分字符串吧,那个双引号也要吧,如果不要的话说声,改下就好了
//TestString.java

import java.util.ArrayList;
import java.util.List;

public class TestString
{
public static void main(String[] args)
{
String s = "A,\"1,23,4\",,B";
String s1[];
char c[] = s.toCharArray();
StringBuffer bs=new StringBuffer();
StringBuffer bs1=new StringBuffer();
for (int i = 0; i < c.length; i++)
{
if (c[i] != '\"')
{
if (c[i] != ',')
{
bs.append(c[i]+" ");
}

} else
{
bs1.append(c[i]);
if(i++ < c.length);
else break;
while (true)
{
if (c[i] != '\"')
{
bs1.append(c[i]);
i++;
}
else
{
bs1.append(c[i]);
bs.append(bs1+" ");
break;
}

}
}

}
s1=bs.toString().split("\\s");
for(int i=0;i<s1.length;i++)
System.out.println(s1[i]);
}
}

运行结果为:
A
"1,23,4"
B
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hermasx
2007-12-01 · TA获得超过333个赞
知道小有建树答主
回答量:411
采纳率:100%
帮助的人:231万
展开全部
使用转义字符
\[。。。]
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式