2012-06-15 151 views
0

我可以用什麼來替換字符串中的中間字符:000變爲010只用3個字符替換字符串的中間部分

我必須用正則表達式來做,如果是的話,我可以有這種模式嗎?或者只用String.Replace方法?

信息:字符串中總是有數字。

+5

您還沒有給出關於你想要做的遠遠不夠的細節。請提供其他輸入/輸出組合 - 例如,您希望「123」成爲什麼? –

+0

多一點輸入/輸出將幫助我們。 – t3hn00b

回答

1

更換字符或字符串通過索引是一個有點尷尬的事情。這將歸結爲

string newString = str.Substring(0,1) + newChar + str.Substring(2); 

它是由內容在那裏你可以使用Replace method由另一個更換子要容易得多

正則表達式將是一種選擇,但即使如此,它不漂亮:

Regex.Replace(str, "^(.).(.)$", "${1}1$2" 
3

有替換過程背後沒有明顯的邏輯,尋找關於這個問題,但假設你在某些時候知道哪些符號應出現在中間,

可以創建一個擴展方法,這樣說

public static class Extension 
{ 
    public static string ReplaceMiddle(this string value, char charToPutIn) 
    { 
     var builder = new StringBuilder(value); 
     builder[value.Length/2] = charToPutIn; 
     return builder.ToString(); 
    } 

} 

,使用後該是這樣的:

"hello".ReplaceMiddle('5') 

這將產生類似結果:

"he5lo" 

預期。

2

如果它只是一個3字符串:

String number = "123"; 
String res = number[0] + "5" + number[2]; 
2
string s = "111000111"; 
string pattern = "000"; 
string replacement = "010"; 
Regex rgx = new Regex(pattern); 
string result = rgx.Replace(s, replacement); 
lbloriginal.Text = s; 
lblnew.Text = result;