java 分解含有双引号的字符串
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 分解含有双引号的字符串相关的知识,希望对你有一定的参考价值。
例如:
有一个字符串是:A,"1,23,4",,B
,(逗号)作为分解符,但“”(双引号)里面的逗号不作为分解符。
上述分解后的结果为(String 数组):
A
1,23,4
(空串)
B
请用java代码实现。
谢谢各位了!!!
//首先把"除掉
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 参考技术A 照你的意思是分字符串吧,那个双引号也要吧,如果不要的话说声,改下就好了
//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 参考技术B 使用转义字符
\[。。。]
Java String 如何加双引号
1 public class Test{ 2 3 public static void main(String[] args){ 4 String str1 = "\\"name\\"";//字符串两边含有双引号 5 String str2 = "name \\"is\\" zcr";//字符串中间含有双引号 6 String str3 = "\\\\name";//使用转义字符还可以使字符串包含其他字符 7 8 System.out.println("字符串一:" + str1); 9 System.out.println("字符串二:" + str2); 10 System.out.println("字符串三:" + str3); 11 } 12 }
以上是关于java 分解含有双引号的字符串的主要内容,如果未能解决你的问题,请参考以下文章