java ::删除String内部引号内的逗号

时间:2016-05-10 06:28:45

标签: java split

String str = "a,b","c,d","1,2","5.6";

在上面我想删除双引号内的逗号。我的结果应该是

str = "ab","cd","12","5.6". 

我经常搜索得到答案。如果你可以帮助我JAVA,那就太好了。

4 个答案:

答案 0 :(得分:3)

首先,您的String[] replaceArray = {"a,b","c,d","1,2","5.6"}; for(int i=0; i<replaceArray.length; i++){ replaceArray[i] = replaceArray[i].replaceAll(",",""); } 无法编译。它应该是

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

希望这有帮助

答案 1 :(得分:2)

我认为您应该使用字符串数组并单独替换所有元素:

double employeeclass::Employee::grosspay(void) const;

答案 2 :(得分:1)

也许有点难看,但你可以使用两次String#replace - 第一次删除所有逗号,第二次在引号之间重新添加逗号:

String str = "\"a,b\",\"c,d\",\"1,2\",\"5.6\"";
System.out.println(str.replace(",", "").replace("\"\"", "\",\""));

输出:

"ab","cd","12","5.6"

也许更好的方法是使用正则表达式一次完成同样的目标,但说实话并不是我的专业知识。

答案 3 :(得分:0)

运行此代码

        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);