VB / C# - 替换字符串

时间:2014-03-08 10:58:40

标签: c# vb.net string linq replace

如何用VB或C#中的字符串替换String的第一个和最后一个出现?
假设字符串看起来像这样:

Hello/This/is/awesome/stuff/produced/by/me

更换后应该是这样的:

Hello|||This/is/awesome/stuff/produced/by|||me

有人能告诉我最快的方式吗?

2 个答案:

答案 0 :(得分:2)

具体到您的问题,您可以有两个功能:每个替换一个。这是第一次替换。

public static string ReplaceFirst(string str, string search, string newText)
{
       int ind = str.IndexOf(search);
       if (ind < 0)
       {
           return str;
       }
       return str.Substring(0, ind) + newText + str.Substring(ind + search.Length);
}

这是第二次替换:

public static string ReplaceLast(string str, string search, string newText)
{
    int ind = str.LastIndexOf(search);
    if (ind < 0)
    {
        return str;
    }
    return str.Substring(0, ind) + newText + str.Substring(ind + search.Length);
}

现在你像这样使用它们:

var str = @"Hello/This/is/awesome/stuff/produced/by/me";
var res = ReplaceFirst(str, "/", "|||");
res = ReplaceLast(res, "/", "|||");

答案 1 :(得分:2)

我喜欢这种方法:

var texts = text.Split(new [] { '/' });
var result = string.Join("|||", new []
{
    texts.First(),
    string.Join(@"/", texts.Skip(1).Take(texts.Length - 2)),
    texts.Last(),
});

对我来说,这在工作原理上是相当明确的。