替换包含“

时间:2017-11-16 00:37:15

标签: vb.net

我遇到了一个问题,试图让这段代码起作用:

filereader.Replace(Chr(34) & "SomeSetting" & Chr(34) & "=dword:00000000", Chr(34) & "SomeSetting" & Chr(34) & "=dword:00000001")

我希望它替换一个字符串!exaclty!看起来像这样,包含引号:

“SomeSetting”= DWORD:00000000

但它的作用是寻找这个字符串:

“” SomeSetting “”= DWORD:00000000

我无法让它发挥作用。即使我试过这个:

Dim Test As String = Chr(34)

测试将如下所示: “” 代替 ”  我在这里失踪了什么?

1 个答案:

答案 0 :(得分:1)

我想我看到了你的问题......对于人们来说,这是一个非常普遍的,偶然的事情。

字符串是不可变的,这意味着一旦你创建了它们,就不能在不创建新字符串实例的情况下更改它们。

问题在于:

filereader.Replace(Chr(34) & "SomeSetting" & Chr(34) & "=dword:00000000", Chr(34) & "SomeSetting" & Chr(34) & "=dword:00000001")

Replace() function 返回带有替换值的新字符串 (因为它无法更改原始字符串),但您 < strong>从不使用 它返回的实例。

您应该将旧的字符串变量设置为Replace()返回的新字符串,如下所示:

filereader = filereader.Replace(Chr(34) & "SomeSetting" & Chr(34) & "=dword:00000000", Chr(34) & "SomeSetting" & Chr(34) & "=dword:00000001")

要避免 (或至少将风险降至最低),请务必阅读Visual Studio的IntelliSense在编写函数调用时向您显示的信息

如果您确实遇到问题,请务必查看MSDN文档以查看是否遗漏了任何内容。他们通常也有示例说明如何使用这些方法。