的C#代碼下位更換支架似乎並沒有做任何事情:似乎與string.replace不與空字符串
String str = "{3}";
str.Replace("{", String.Empty);
str.Replace("}", String.Empty);
Console.WriteLine(str);
這最終吐出:{3}。我不知道這是爲什麼。我一直在用Java來做這類事情。有沒有.NET字符串處理的一些細微差別,逃避我?
Brian
的C#代碼下位更換支架似乎並沒有做任何事情:似乎與string.replace不與空字符串
String str = "{3}";
str.Replace("{", String.Empty);
str.Replace("}", String.Empty);
Console.WriteLine(str);
這最終吐出:{3}。我不知道這是爲什麼。我一直在用Java來做這類事情。有沒有.NET字符串處理的一些細微差別,逃避我?
Brian
String類是immutable; str.Replace
不會改變str
,它會返回一個新的字符串和結果。試試這個來代替:
String str = "{3}";
str = str.Replace("{", String.Empty);
str = str.Replace("}", String.Empty);
Console.WriteLine(str);
我想你需要做的
String str = "{3}";
str = str.Replace("{", String.Empty);
str = str.Replace("}", String.Empty);
Console.WriteLine(str);
看那String.Replace參考:
返回值類型:System
與此實例等效的字符串,但 與所有oldValue實例 替換爲newValue。
Replace函數返回修改過的字符串,所以您必須將它分配回您的str
變量。
String str = "{3}";
str = str.Replace("{", String.Empty);
str = str.Replace("}", String.Empty);
Console.WriteLine(str);
Str.Replace返回一個新的字符串。所以,你需要如下使用它:
String str = "{3}";
str = str.Replace("{", String.Empty);
str = str.Replace("}", String.Empty);
替換實際上不會修改您調用它的字符串實例。它只是返回一個修改後的副本。
試試這個:
String str = "{3}";
str = str.Replace("{", String.Empty);
str = str.Replace("}", String.Empty);
Console.WriteLine(str);
字符串是不可改變的;你不能改變一個字符串的實例。你的兩個Replace()調用對原始字符串不做任何處理;他們返回一個修改的字符串你需要這個:
String str = "{3}";
str = str.Replace("{", String.Empty);
str = str.Replace("}", String.Empty);
Console.WriteLine(str);
它在Java中也是這樣工作的。
我相信str.Replace返回一個值,你必須賦值給你的變量。所以,你需要做的是這樣:
String str = "{3}";
str = str.Replace("{", String.Empty);
str = str.Replace("}", String.Empty);
Console.WriteLine(str);
的Replace
方法返回用替換字符串。我想你要找的是這樣的:
str = str.Replace("{", string.Empty);
str = str.Replace("}", string.Empty);
Console.WriteLine(str);
除了所有的建議,到目前爲止 - 你也可以做到這一點,而不受輸出直列使用替換功能改變原字符串的值..
String str = "{3}";
Console.WriteLine(str.Replace("{", String.Empty).Replace("}", String.Empty));
http:// stackoverflow可能存在重複。COM /問題/ 1948978 /字符串替換 - 不工作。這是第一個,但另一個有更清晰的標題。 – goodeye 2012-03-27 02:41:54