2010-04-21 49 views
3

更換幾個不同的角色我嘗試在一些字符串14/04/2010 17:12:11更換幾個字符,得到的,例如,下一個結果:在一個字符串

14%04%2010%17%12%11 

我知道的方法Replace,但它的定義看起來像Replace(Char,Char)。這意味着在方法鏈中使用它3次。看起來不習慣。如何以最佳方式解決問題?常用表達?任何方法來逃避他們?

+0

注:'Replace'也爲這樣的構造:'替換(字符串,字符串)' – RedFilter 2010-04-21 22:03:10

回答

7

IT連鎖:

string s1 = "14/04/2010 17:12:1"; 

string s2 = s1.Replace("/","%").Replace(" ","%").Replace(":","%"); 
+2

+1在不需要時不使用RegEx。 – RedFilter 2010-04-21 21:52:54

+1

請注意,代替建議您可以使用字符串s2 = s1.Replace('/','%')替換('','%')。 (注意我用''替換了「」),因爲它性能更好!實際上,這將比正則表達式變得更快。 – Foxfire 2010-04-21 22:57:22

8
Regex.Replace(myString, "[/ :]", "%"); 

簡單而優雅!

+0

有沒有使用正則表達式的簡單方法? – akrisanov 2010-04-21 21:49:54

+1

你需要傳遞輸入字符串作爲第一個參數嗎? – sparkkkey 2010-04-21 21:50:51

+2

正則表達式是簡單的方法。 – 2010-04-21 21:50:53

0

另一種Regex的做法,雖然我不同意利用的在這裏。這只是替換所有非數字字符:

string date2 = Regex.Replace(date1, @"\D", "%"); 
0

如果你經常這樣做,寫一個方法:

static string Replace(string s, string c, char n) 
{    
    for (int i = 0; i < c.Length; i++) 
     s = s.Replace(c[i], n);    
    return s; 
} 

例如

string s1 = "14/04/2010 17:12:11";     
string s2 = Replace(s1, "/ :", '%'));