5

假设我们有一个字符串:

String mystring = "A,B,C,D";

我想在我的字符串中的每个单词之前和之后添加一个撇号。例如:

"'A','B','C','D'"

我怎样才能做到这一点?

4

6 回答 6

10

你对一个词的定义是什么?逗号之间有什么?

首先获取单词:

var words = mystring.Split(',');

然后添加撇号:

words = words.Select(w => String.Format("'{0}'", w));

并将它们转回一个字符串:

var mynewstring = String.Join(",", words);
于 2013-06-19T12:29:41.970 回答
6
mystring = "'" + mystring.replace(",", "','") + "'";
于 2013-06-19T12:29:44.493 回答
3

我会让每个“单词”由正则表达式\b单词边界确定。所以你有了:

var output = Regex.Replace("A,B,C,D", @"(\b)", @"'$1");
于 2013-06-19T12:37:17.273 回答
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();
于 2013-06-19T12:34:30.973 回答
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(",", "','")));
于 2013-06-19T12:31:50.343 回答
0

你可以使用正则表达式来解决这个问题,如下所示:

字符串单词=“A,B,C,D”;
正则表达式 reg = new Regex(@"(\w+)");
words = reg.Replace(words, match=> { return string.Format("'{0}'", match.Groups[1].Value); });

于 2013-06-19T13:00:12.317 回答