6

这似乎是一个简单的问题,但我不知道如何解决它。我有一行代码删除了字符串的一部分。我只是想将其从仅删除更改为用其他内容替换。有没有办法像在下面的代码示例中那样使用 string.replace 和索引?

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

5 回答 5

9

不,没有什么可做的。最简单的方法是只使用Substring和字符串连接:

public static string Replace(string text, int start, int count,
                             string replacement)
{
    return text.Substring(0, start) + replacement 
         + text.Substring(start + count);
}

请注意,这确保您绝对不会替换字符串的其他部分,这些部分也恰好与该文本匹配。

于 2013-08-12T15:50:40.190 回答
3

所有很好的答案,您也可以这样做:

  String result = someString.Remove(m.Index, m.Length).Insert(m.Index, "New String Value");

这不是最漂亮的代码,但它可以工作。

将其写入扩展方法或某种基本功能通常会更好,这样您就不必重复自己了。

于 2013-08-12T15:54:09.470 回答
1

你不能这样做:

output = output.Replace(output.Substring(m.Index, m.Length), "Whatever I want to replace with");

注意:这将替换子字符串的所有实例。

于 2013-08-12T15:50:23.190 回答
0

我正在用其他东西替换它,您可以尝试用其他字符串替换它:-

string s= original.Substring(0, start) + "ABCDEF"+ 
              original.Substring(end);
于 2013-08-12T15:50:56.943 回答
0

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

毫不奇怪,乔恩的答案更准确,因为它不会替换删除字符串的多个实例。

    static string Replace(string output, string replacement, int index, int length)
    {
        string removeString = output.Substring(index, length);
        return output.Replace(removeString, replacement);
    }
于 2013-08-12T15:51:42.310 回答