繁体   English   中英

java ::删除字符串内引号内的逗号

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM