在字符串中的每个单词之前和之后添加字符

时间:2013-06-19 12:27:42

标签: c#

想象一下,我们有一个字符串:

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

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

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

我怎样才能实现这一目标?

6 个答案:

答案 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);});