2013-06-19 89 views
4

假設我們有一個字符串爲:字符串中的每一個字前後加字符

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

我想之前在我string.Such每個單詞後面添加一個撇號:

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

我該如何做到這一點?

+3

每個*字*之前和之後?這個字符串是什麼:「A,Something here,C」,你會想要這個:「'A','Something''here','C'」? –

+0

其實這些字母都是單詞,懶我:) – Sin5k4

回答

7

你對一個詞的定義是什麼?逗號之間有什麼?

首先得到的話:

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

然後添加撇號:

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

,並把它們放回一個字符串:

var mynewstring = String.Join(",", words); 
+1

1行:'var words = string.Join(「,」,mystring.Split(',')。Select(w => string.Format(「'{0} '',w)));' – Dan

6
mystring = "'" + mystring.replace(",", "','") + "'"; 
+1

+1我寫完全相同的答案,無法發佈它,因爲你更快:) – gkovacs90

+0

非常好..'+ 1' –

+0

謝謝。通常情況下,我也會採取一些分裂的方式去做,但是在這種情況下,這個線索確實是OP想要的。 – Robert

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(",", "','"))); 
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(); 
3

我會讓每一個 「字」 的正則表達式\b字邊界確定。所以,你必須:

var output = Regex.Replace("A,B,C,D", @"(\b)", @"'$1"); 
0

你可以使用正則表達式來解決這個問題 這樣的:

串詞= 「A,B,C,d」;
Regex reg = new Regex(@「(\ w +)」);
words = reg.Replace(words,match => {return string.Format(「'{0}'」,match.Groups [1] .Value);});

相關問題