想象一下,我们有一个字符串:
String mystring = "A,B,C,D";
我想在我的字符串中的每个单词之前和之后添加一个撇号。例如:
"'A','B','C','D'"
我怎样才能实现这一目标?
答案 0 :(得分:7)
你对一个单词的定义是什么?逗号之间有什么东西吗?
首先得到的话:
var words = mystring.Split(',');
然后添加撇号:
words = words.Select(w => String.Format("'{0}'", w));
将它们变回一个字符串:
var mynewstring = String.Join(",", words);
答案 1 :(得分:6)
mystring = "'" + mystring.replace(",", "','") + "'";
答案 2 :(得分:3)
我会让每个“单词”由正则表达式\b
单词边界决定。所以,你有:
var output = Regex.Replace("A,B,C,D", @"(\b)", @"'$1");
答案 3 :(得分:1)
string str = "a,b,c,d";
string.Format("'{0}'", str.Replace(",", "','"));
或
string str = "a,b,c,d";
StringBuilder sb = new StringBuilder(str.Length * 2 + 2);
foreach (var c in str.ToCharArray())
{
sb.AppendFormat((c == ',' ? "{0}" : "'{0}'"), c);
}
str = sb.ToString();
答案 4 :(得分:0)
string mystring = "A,B,C,D";
string[] array = mystring.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
string newstring = "";
foreach (var item in array)
{
newstring += "'" + item + "',";
}
newstring = newstring.Remove(newstring.Length - 1);
Console.WriteLine(newstring);
输出将是;
'A','B','C','D'
这是DEMO。
或者更简单;
string mystring = "A,B,C,D";
Console.WriteLine(string.Format("'{0}'", mystring.Replace(",", "','")));
答案 5 :(得分:0)
您可以使用正则表达式来解决此问题 像这样:
string words =“A,B,C,D”;
正则表达式reg =新正则表达式(@“(\ w +)”);
words = reg.Replace(words,match => ; {return string.Format(“'{0}'”,match.Groups [1] .Value);});