第1部分(我测试了很多次,效果很好)
Public Function ReadTextFile(ByVal TextFileName As String) As String
Dim TempString As String
Dim StreamToDisplay As StreamReader
StreamToDisplay = New StreamReader(TextFileName)
TempString = StreamToDisplay.ReadToEnd
StreamToDisplay.Close()
Return TempString
End Function
第二部分(我测试了很多次,搜索和替换不起作用。我多次检查过“TempText”是否包含字符串。“the_key_string”在“TempText”字符串内部。我通过检查它在VB.net中使用QuickWatch。但是,替换功能不起作用)
Dim TextPath = C:xxxxxx
TempText = ReadTextFile(TextPath)
TempText.Replace("the_key_string", "replace_by_this_string")
请帮忙。我不知道我犯了什么错误
答案 0 :(得分:8)
String.Replace
返回新字符串,而不是修改源字符串。您必须将其分配回您的变量:
TempText = TempText.Replace("the_key_string", "replace_by_this_string")
来自MSDN:
返回一个新字符串,其中当前实例中所有出现的指定字符串都被另一个指定的字符串替换。
答案 1 :(得分:3)
字符串是不可变的,这意味着一旦创建它们就无法修改它们。所以你必须创建一个新的并将其分配给你的字符串变量:
TempText = TempText.Replace("the_key_string", "replace_by_this_string")
MSDN:String Data Type (Visual Basic)
:
将字符串分配给String变量后,该字符串就是 不可变的,这意味着你不能改变它的长度或内容。什么时候 您以任何方式更改字符串,Visual Basic创建一个新的字符串和 放弃前一个。然后String变量指向新变量 字符串。
答案 2 :(得分:0)
您必须将值分配给某些内容,例如:
TempText = TempText.Replace("the_key_string", "replace_by_this_string")
答案 3 :(得分:0)
这是执行字符串替换,但它没有将结果放在任何地方:
TempText.Replace("the_key_string", "replace_by_this_string")
您需要将结果分配给某些内容:
TempText = TempText.Replace("the_key_string", "replace_by_this_string")
答案 4 :(得分:0)
Replace方法返回修改后的字符串。
你需要这样的东西:
Dim TextPath = C:xxxxxx
TempText = ReadTextFile(TextPath)
Dim ModifiedString as String
ModifiedString = TempText.Replace("the_key_string", "replace_by_this_string")
答案 5 :(得分:0)
“这是一个字符串” 如果你用'what'替换'string'这个字符串应该是:“这是一个什么”。所以你能做的就是把它放在一个新的字符串中。怎么样? replace方法返回一个字符串,很容易:) 看到这个:msdn