我正在写一个函数来替换子串(laguange没有这个,grr),而且我的输出中有一些奇怪的字符。我无法弄清楚原因。
string replaceSubstring(string input, string targetSubstring, string substitute, bool matchCase)
{
string result = input
Buffer b = create
b = input
int targetStartPos
int targetLength
while (findPlainText(result, targetSubstring, targetStartPos, targetLength, matchCase))
{
string prefixStr = b[0:targetStartPos - 1]
string suffixStr = b[targetStartPos + targetLength:]
b = prefixStr substitute suffixStr
result = tempStringOf(b)
}
delete b
return result
}
运行print replaceSubstring("Jake Lewis", "ake", "ack", false)
时,我得到�*��*�is
的输出。这似乎是某种编码问题,但我不清楚这是如何发生的,或者如何解决它。
答案 0 :(得分:1)
尝试使用stringOf()
代替tempStringOf()
。您的处理很好,但删除b
后结果将无效。