如何将一串逗号分隔的字符转换为字符串字符串,每个字符串用单引号括起并用逗号分隔

时间:2015-10-23 14:56:33

标签: java string replace

我有一个字符串

"#72c02c, #3498db, #e67e22, #9c8061, #4765a0, #79d5b3"

我想将其转换为以下内容:

"'#72c02c', '#3498db', '#e67e22', '#9c8061', '#4765a0', '#79d5b3'"

有没有办法这样做?

3 个答案:

答案 0 :(得分:3)

我不知道为什么每个人都在使用正则表达式...这只需要一个简单的文本替换:

str = "'" + str.replace(", ", "', '") + "'";

这只是在逗号之前/之后加上引号并在每一端都加上引号,这很容易理解。

答案 1 :(得分:0)

String s = "#72c02c, #3498db, #e67e22, #e74c3c, #ecf0f1, #9b6bcc, #27d7e7, #9c8061, #4765a0, #79d5b3";

            s = s.replaceAll("(#|,)","'$1");
            if (s.charAt(s.length()-1) != ',')
                    s = s + "'";

可能不是最优雅的解决方案,但它处理字符串中最后一项不以,结尾的情况。如果确实以逗号结尾也会有效。

答案 2 :(得分:-1)

如果您能够像使用简单的String对象实例一样使用它,则可以使用正则表达式([#\w]+)String.replaceAll()方法来执行此操作,例如:

String testString = "#72c02c, #3498db, #e67e22, #e74c3c, #ecf0f1, #9b6bcc, #27d7e7, #9c8061, #4765a0, #79d5b3";
System.out.println(testString.replaceAll("([#\\w]+)","'$1'"));

([#\w]+)的位置,您只需获取每组字母数字字符或#

然后,您只需将其替换为'$1',其中$1是找到的整个群组。