我不确定我是否真的使用VB.net。我正在使用Visual Basic 2010 express,我不知道这是否相同。
我正在使用replace函数来替换字符串中特定位置的0,其中包含大量的0和1.我使用可选参数,让您选择字符串中函数开始搜索的位置字符。但是每当它执行此操作时,它会在我告诉它进入字符串的位置之前删除字符串的所有部分。
那么我该怎么办才能让它像之前一样返回整个字符串,但只是在那个位置改变了一个字符。代码行是:
board = Replace(board, "0", "1", position, 1)
答案 0 :(得分:4)
出于某种奇怪的原因String.Replace返回字符串FROM位置,其中有N个替换。
来自MSDN:
Replace函数的返回值是一个字符串,它从Start指定的位置开始,在Expression字符串的末尾结束,其中的替换值由Find和Replace值指定。
但是如果你使用StringBuilder
:
Dim sb As New StringBuilder(board)
sb = sb.Replace("0", "1", position, 1)
board = sb.ToString
它按预期工作。
我有一种潜在的怀疑,即微软的一个错误,他们从未修复过,因为它会影响那些已经使用过它的人。
答案 1 :(得分:0)