将String.Replace()与索引一起使用,而不是将字符串用作参数

本文关键字:参数 字符串 Replace String 索引 一起 | 更新日期: 2023-09-27 18:27:32

这似乎是一个简单的问题,但我不知道如何解决。我有一行代码可以删除字符串的一部分。我只是想把它从简单的删除改为用其他东西替换它。有没有一种方法可以像下面的代码示例中那样使用字符串替换为索引?

output = output.Remove(m.Index, m.Length);

将String.Replace()与索引一起使用,而不是将字符串用作参数

不,没有什么可做的。最简单的方法是只使用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);

这将根据索引和长度删除子字符串,然后用替换字符串替换它。

不出所料,Jon的答案更准确,因为它不会替换删除字符串的多个实例。

    static string Replace(string output, string replacement, int index, int length)
    {
        string removeString = output.Substring(index, length);
        return output.Replace(removeString, replacement);
    }