[英]java :: Remove comma inside quotes inside String
String str = "a,b","c,d","1,2","5.6";
在上面,我想删除双引号内的逗号。 我的结果应该是
str = "ab","cd","12","5.6".
我进行了很多搜索以获得答案。 如果您能在JAVA上帮助我,那将是很棒的。
首先,您的String str
是不可编译的。 它应该是
String str = "\"a,b\",\"c,d\",\"1,2\",\"5.6\"";
为了替换,
您需要在双引号内
System.out.println(str.replaceAll("(\".?),(.?\")", "$1$2"));
输出:
"ab","cd","12","5.6"
上述方案假定你总是有1个或没有文字上的两侧,
双引号内。
如果可以有多个字符,则可以使用下面的表达式进行匹配
System.out.println(str.replaceAll("(\"\\w*),(\\w*\")", "$1$2"));
\\w
是与A word character: [a-zA-Z_0-9]
匹配的预定义字符类A word character: [a-zA-Z_0-9]
希望这可以帮助
我认为您应该使用字符串数组并单独替换所有元素:
String[] replaceArray = {"a,b","c,d","1,2","5.6"};
for(int i=0; i<replaceArray.length; i++){
replaceArray[i] = replaceArray[i].replaceAll(",","");
}
也许有点难看,但是您可以使用两次String#replace
第一次删除所有逗号,第二次在引号之间重新添加逗号:
String str = "\"a,b\",\"c,d\",\"1,2\",\"5.6\"";
System.out.println(str.replace(",", "").replace("\"\"", "\",\""));
输出:
"ab","cd","12","5.6"
也许最好使用正则表达式一次完成相同的目标,但是说实话,这并不是我的专长。
运行此代码
String str = "\"a,b\",\"c,d\",\"1,2\",\"5,6\"";
str=str.replace("\"","");
String[] parts = str.split(",");
String outputString="";
int literalCount=2;
String output="";
for (String part : parts) {
if(literalCount==0) {
outputString=outputString+output+",";
output = part;
literalCount=2;
}else
{
output+=part;
}
literalCount--;
}
outputString="\""+outputString+output+"\"";
System.out.println(outputString);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.