将 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'的主要内容,如果未能解决你的问题,请参考以下文章

shll基础,原来脚本并不难!

替换字符串数组中所有出现的字符串

char *a[2]="one","two",**p=a;printf("%s",*(p++)+1);printf("%c&quo

如何打印 groupby 对象

按值获取字典键

你可能会遗忘onload的知识点详解