2011-01-07 51 views
2

我必須用1個雙引號替換2個雙引號。C#forwardonly string.replace

但我希望它只是向前,所以如果有4個雙引號,我想要2個雙引號。

string.replace()只會返回1個雙引號,因爲它從第0個索引開始重新搜索2個雙引號。

有什麼建議嗎?

回答

4

我錯過了觀點嗎?我問,因爲簡單的

string s = "\"\"Test.\"\""; 
string t = s.Replace("\"\"", "\""); 
Console.WriteLine("Before: " + s); 
Console.WriteLine("After: " + t); 

只輸出

Before: ""Test."" 
After: "Test." 

string u = "\"\"\"\""; 
string v = w.Replace("\"\"", "\""); 
Console.WriteLine("Before: " + u); 
Console.WriteLine("After: " + v); 

只是我的控制檯上輸出

Before: """" 
After: "" 

。請告訴我們你已經擁有了什麼,它正在生產的產出以及你想要的產出,因爲當我讀到你的問題時,上面的內容正在滿足你的要求。

+1

謝謝傑森。我想我並沒有直視。除了替換(),我正在使用Trim(),這是在搞亂我的最終輸出。你的回答幫助我意識到了這個錯誤。再次感謝! – NiTiN 2011-01-07 22:13:49

3

你的說法似乎並不正確,四雙引號替換兩個雙引號有一個結果兩個雙引號的字符串的字符串:

Console.WriteLine("\"\"\"\"".Replace("\"\"", "\"")); 

產生

"" 

其實,這是沒有意義的性能明智的,當第一場比賽是發現和更換,我們知道,沒有比賽是在之前的子字符串Replace重新啓動搜索索引爲0的比賽。

+0

Doh。 @Jason說了什麼! :) – 2011-01-07 21:14:36