26

我在尝试替换 C# .net 上日期字符串中的反斜杠时遇到了一些问题。

到目前为止,我正在使用:

string.Replace(@"\","-")

但它还没有完成更换。有人可以帮忙吗?

4

5 回答 5

53

string.Replace不会修改字符串本身,而是返回一个新字符串,您很可能会将其丢弃。改为这样做:

myString= myString.Replace(@"\","-");

附带说明一下,这种操作通常出现在手动处理格式化日期字符串的代码中。大多数时候,有比这样的事情更好的方法来做你想做的事情(这是?)。

于 2012-05-25T10:35:06.140 回答
4

正如他们所有人所说,您需要在变量中取回价值。

所以应该是

 val1= val1.Replace(@"\","-");

或者

 val1= val1.Replace("\\","-");

但不仅..低于一个将不起作用

 val1.Replace(@"\","-");
于 2012-05-25T11:16:52.827 回答
1

以这种方式使用它。

oldstring = oldstring.Replace(@"\","-");

寻找String.Replace返回类型。

它是一个返回正确字符串的函数。如果它只是简单地更改了旧字符串,那么它将有一个void返回类型。

于 2012-05-25T10:36:36.650 回答
1

您还可以使用:

myString = myString.Replace('\\', '-'));

但只是让您知道,日期斜杠通常是正斜杠/,而不是反斜杠\

于 2012-05-25T10:37:08.543 回答
0

正如其他人所建议的那样, String.Replace 不会更新原始字符串对象,而是返回一个新字符串。

myString= myString.Replace(@"\","-");

值得您了解字符串在 C# 中是不可变的,基本上是为了使其成为线程安全的。有关字符串及其不可变原因的更多详细信息,请参阅此处此处的链接

于 2012-05-25T10:45:48.273 回答