java 分解含有双引号的字符串 20
例如:有一个字符串是:A,"1,23,4",,B,(逗号)作为分解符,但“”(双引号)里面的逗号不作为分解符。上述分解后的结果为(String数组):A1,23,4(空串...
例如:
有一个字符串是:A,"1,23,4",,B
,(逗号)作为分解符,但“”(双引号)里面的逗号不作为分解符。
上述分解后的结果为(String 数组):
A
1,23,4
(空串)
B
请用java代码实现。
谢谢各位了!!! 展开
有一个字符串是:A,"1,23,4",,B
,(逗号)作为分解符,但“”(双引号)里面的逗号不作为分解符。
上述分解后的结果为(String 数组):
A
1,23,4
(空串)
B
请用java代码实现。
谢谢各位了!!! 展开
展开全部
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
//首先把"除掉
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
展开全部
照你的意思是分字符串吧,那个双引号也要吧,如果不要的话说声,改下就好了
//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
//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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
使用转义字符
\[。。。]
\[。。。]
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询