的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