将 String="one,two,three" 转换为 String='one','two','three'
Posted
技术标签:
【中文标题】将 String="one,two,three" 转换为 String=\'one\',\'two\',\'three\'【英文标题】:Convert String="one,two,three" to String='one','two','three'将 String="one,two,three" 转换为 String='one','two','three' 【发布时间】:2015-10-16 13:43:35 【问题描述】:需要将我的字符串值“一、二、三”转换为“一”、“二”、“三” 我有以下代码
String input = "One,two,three";
需要为休眠中的查询发送此输入值。
所以需要将'one','two','three'作为单个字符串发送,请提供一个简单的解决方案
【问题讨论】:
replace(",","','")
并用另一个 '
包围结果。
请带上tour,看看周围,通读help center,尤其是How do I ask a good question?
【参考方案1】:
您可以执行以下操作:
String result = input.replace(",", "','").replaceAll("(.*)", "'$1'");
input.replace(",", "','")
将每个 ,
替换为 ','
,因此在这一步您的字符串将如下所示:
一','二','三
接下来我们使用正则表达式将字符串用'
包围起来,现在看起来是这样的
'一','二','三'
这就是你想要的。
正则表达式解释:我们捕获整个字符串,然后将其替换为自身,但用单引号括起来。
参考资料:
String#replaceAll
String#replace
Regex tutorial
【讨论】:
【参考方案2】:使用正则表达式:
input.replaceAll("(\\w+)", "\'$1\'")
在正则表达式中,'w' 是单词字符。 http://docs.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html#sum
【讨论】:
++ 但您不需要添加新组,我们已经有组 0 代表整个匹配。此外,使用[^,]
而不是\w
可能会更好。【参考方案3】:
String[] split = input.split(",");
StringBuilder sb = new StringBuilder();
for (int i = 0 ; i < split.length ; i++ )
sb.append("'" + str + "'");
if ( i != split.length-1 )
sb.append(",");
sb.toString();
not smart, but easiest..
【讨论】:
以上是关于将 String="one,two,three" 转换为 String='one','two','three'的主要内容,如果未能解决你的问题,请参考以下文章
char *a[2]="one","two",**p=a;printf("%s",*(p++)+1);printf("%c&quo