如何通过位置替换字符串的一部分?

213

我有这个字符串:ABCDEFGHIJ

我需要使用字符串ZX替换从第4个位置到第5个位置的字符串。

替换后的结果应该是:ABCZXFGHIJ

但不要使用 string.replace("DE","ZX") 这种方式,我需要使用位置来实现。

我该怎么做呢?


@TotZam - 请检查日期。这个比你链接的那个旧。 - ToolmakerSteve
@ToolmakerSteve 我通常会关注问题和答案的质量,而不是日期,就像这里所说的那样。在这种情况下,我似乎犯了一个错误,点击了错误的重复标记,因为这个问题的质量显然更好,所以我已经标记了另一个问题。 - Tot Zam
@TotZam - 啊,我不知道那个建议 - 谢谢你指出来。尽管看到一些旧的问题被报告为新的重复问题很令人困惑,所以在这种情况下,值得明确解释你正在标记一个更旧的问题为重复,因为链接的问题有更好的答案。 - ToolmakerSteve
22个回答

-1
最好使用 String.substr()
像这样:
ReplString = GivenStr.substr(0, PostostarRelStr)
           + GivenStr(PostostarRelStr, ReplString.lenght());

-2

我相信最简单的方法是这样的:(不使用字符串生成器)

string myString = "ABCDEFGHIJ";
char[] replacementChars = {'Z', 'X'};
byte j = 0;

for (byte i = 3; i <= 4; i++, j++)  
{                   
myString = myString.Replace(myString[i], replacementChars[j]);  
}

这段代码可以工作是因为字符串类型的变量可以被看做是由字符变量组成的数组。 比如说,你可以用变量名“myString”加上中括号和数字 1 来引用字符串变量的第二个字符:myString[1]。

2
这仅适用于作者示例中的“字符串”,因为要替换的字符每个只出现一次。如果您对“DBCDEFGHIE”运行此操作,则会得到“ZBCZXFGHIX”,这不是期望的结果。此外,我不认为这比两年半前发布的其他非StringBuilder解决方案更简单。 - Lance U. Matthews

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接