以下C#代码似乎没有做任何事情:
String str = "{3}";
str.Replace("{", String.Empty);
str.Replace("}", String.Empty);
Console.WriteLine(str);
Run Code Online (Sandbox Code Playgroud)
这最终吐出:{3}.我不知道为什么会这样.我总是用Java做这件事.是否存在一些.NET字符串处理的细微差别?
布赖恩
Fre*_*örk 19
String类是不可变的 ; str.Replace不会改变str,它将返回一个带有结果的新字符串.试试这个:
String str = "{3}";
str = str.Replace("{", String.Empty);
str = str.Replace("}", String.Empty);
Console.WriteLine(str);
Run Code Online (Sandbox Code Playgroud)
字符串是不可变的; 你不能改变一个字符串的实例.你的两个Replace()调用对原始字符串没有任何作用; 他们返回修改后的字符串.你想要这个:
String str = "{3}";
str = str.Replace("{", String.Empty);
str = str.Replace("}", String.Empty);
Console.WriteLine(str);
Run Code Online (Sandbox Code Playgroud)
它也在Java中以这种方式工作.
替换实际上不会修改您调用它的字符串实例.它只返回修改后的副本.
试试这个:
String str = "{3}";
str = str.Replace("{", String.Empty);
str = str.Replace("}", String.Empty);
Console.WriteLine(str);
Run Code Online (Sandbox Code Playgroud)
Str.Replace返回一个新字符串.因此,您需要按如下方式使用它:
String str = "{3}";
str = str.Replace("{", String.Empty);
str = str.Replace("}", String.Empty);
Run Code Online (Sandbox Code Playgroud)
我想你必须这样做
String str = "{3}";
str = str.Replace("{", String.Empty);
str = str.Replace("}", String.Empty);
Console.WriteLine(str);
Run Code Online (Sandbox Code Playgroud)
查看String.Replace引用:
返回值类型:System.String
与此实例等效的String,但所有oldValue实例都替换为newValue.
Replace函数返回修改后的字符串,因此您必须将其分配回str变量.
String str = "{3}";
str = str.Replace("{", String.Empty);
str = str.Replace("}", String.Empty);
Console.WriteLine(str);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2942 次 |
| 最近记录: |