这似乎是一个简单的问题,但我不知道如何解决它。我有一行代码删除了字符串的一部分。我只是想将其从仅删除更改为用其他内容替换。有没有办法像在下面的代码示例中那样使用 string.replace 和索引?
output = output.Remove(m.Index, m.Length);
这似乎是一个简单的问题,但我不知道如何解决它。我有一行代码删除了字符串的一部分。我只是想将其从仅删除更改为用其他内容替换。有没有办法像在下面的代码示例中那样使用 string.replace 和索引?
output = output.Remove(m.Index, m.Length);
不,没有什么可做的。最简单的方法是只使用Substring
和字符串连接:
public static string Replace(string text, int start, int count,
string replacement)
{
return text.Substring(0, start) + replacement
+ text.Substring(start + count);
}
请注意,这确保您绝对不会替换字符串的其他部分,这些部分也恰好与该文本匹配。
所有很好的答案,您也可以这样做:
String result = someString.Remove(m.Index, m.Length).Insert(m.Index, "New String Value");
这不是最漂亮的代码,但它可以工作。
将其写入扩展方法或某种基本功能通常会更好,这样您就不必重复自己了。
你不能这样做:
output = output.Replace(output.Substring(m.Index, m.Length), "Whatever I want to replace with");
注意:这将替换子字符串的所有实例。
我正在用其他东西替换它,您可以尝试用其他字符串替换它:-
string s= original.Substring(0, start) + "ABCDEF"+
original.Substring(end);
这将根据索引和长度删除一个子字符串,然后用替换字符串替换它。
毫不奇怪,乔恩的答案更准确,因为它不会替换删除字符串的多个实例。
static string Replace(string output, string replacement, int index, int length)
{
string removeString = output.Substring(index, length);
return output.Replace(removeString, replacement);
}