假设我们有一个字符串:
String mystring = "A,B,C,D";
我想在我的字符串中的每个单词之前和之后添加一个撇号。例如:
"'A','B','C','D'"
我怎样才能做到这一点?
假设我们有一个字符串:
String mystring = "A,B,C,D";
我想在我的字符串中的每个单词之前和之后添加一个撇号。例如:
"'A','B','C','D'"
我怎样才能做到这一点?
你对一个词的定义是什么?逗号之间有什么?
首先获取单词:
var words = mystring.Split(',');
然后添加撇号:
words = words.Select(w => String.Format("'{0}'", w));
并将它们转回一个字符串:
var mynewstring = String.Join(",", words);
mystring = "'" + mystring.replace(",", "','") + "'";
我会让每个“单词”由正则表达式\b
单词边界确定。所以你有了:
var output = Regex.Replace("A,B,C,D", @"(\b)", @"'$1");
string str = "a,b,c,d";
string.Format("'{0}'", str.Replace(",", "','"));
or
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();
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(",", "','")));
你可以使用正则表达式来解决这个问题,如下所示:
字符串单词=“A,B,C,D”;
正则表达式 reg = new Regex(@"(\w+)");
words = reg.Replace(words, match=> { return string.Format("'{0}'", match.Groups[1].Value); });