如何用VB或C#中的字符串替换String的第一个和最后一个出现?
假设字符串看起来像这样:
Hello/This/is/awesome/stuff/produced/by/me
更换后应该是这样的:
Hello|||This/is/awesome/stuff/produced/by|||me
有人能告诉我最快的方式吗?
答案 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(),
});
对我来说,这在工作原理上是相当明确的。