我猜你在調試器的外觀和這就是爲什麼你會得到這種行爲......
每個\\
實際上是一個\
。這就是爲什麼你把\\\\
替換爲\\
(兩個「\」替換爲一個) ,因爲\\
實際上只有一個「\」,所以替換後仍然會得到「\」(因爲它沒有找到兩個「\」字符串
的原因是,如果你想有標籤(\ t)的性格,你將有新的生產線"\r\n"
字符串"\t"
\字符標誌着一個特殊字符,例如。 所以當你真正想擁有一個「 \'字符串中的字符在之前用一個'\'字符標記 - 例如"\\"
這意味着當您看到「\\ AAA.AA.A.AA \ d $ \ ivr \ vm \ 2012May \ 29 \ 10231_172322134 8.vox「,實際的字符串是」\ AAA.AA.A.A.AA \ d $ \ ivr \ vm \ 2012May \ 29 \ 10231_1723221348.vox「
因此fileToConvert.Replace(@"\\",@"\")
會使它看起來像這樣:
"\AAA.AA.A.AA\d$\ivr\vm\2012May\29\10231_1723221348.vox"
,您將在調試器中看到的"\\AAA.AA.A.AA\\d$\\ivr\\vm\\2012May\\29\\10231_1723221348.vox"
對於一個結論:
你不需要做任何事情 - 甚至沒有fileToConvert.Replace(@"\\",@"\")
因爲你原來的字符串(你在調試看到爲"\\\\AAA.AA.A.AA\\d$\\ivr\\vm\\2012May\\29\\10231_1723221348.vox"
)實際上是"\\AAA.AA.A.AA\d$\ivr\vm\2012May\29\10231_1723221348.vox"
是你的輸入和輸出字符串逐字字符串?他們不這樣看。您的替換正在按預期工作。 – BoltClock
當你使用'Console.Writeline(yourFirstString);'時,結果如何?這是你如何得到你的結果? – dwerner
@dash:你應該停止[meta](http://meta.stackoverflow.com/users/137537/boltclocks-a-unicorn):) – BoltClock