給定一個sting,如何跳過前x個字符,然後爲每個y個字符插入一個值?跳過x個字符,然後爲c中的每個y字符插入一個字符串#
例如:
「Lorem ipsum dolor sit amet,」
跳過第10個caracters然後indsert「[這裏]」每3個caracters成爲當
:
「Lorem ipsu[here]m d[here]olo[here]r s[here]it [here]ame[here]t,」
什麼是最有效,最快捷的方式在C#中這樣做?
我目前的函數看起來是這樣,但不這樣做的跳躍部分,我知道如何實現跳躍部分,但似乎使用的技術不爲最優:
public static string InsertHere(string source)
{
if (string.IsNullOrWhiteSpace(source))
{
return string.Empty;
}
int count = 0;
var sb = new StringBuilder();
foreach (char c in source)
{
count++;
sb.Append(c);
if (count == 10)
{
count = 0;
sb.Append(@"[here]");
}
}
return sb.ToString();
}
@weston問題更新與我目前的實施,這不正確地解決問題 – 2012-08-02 08:17:15
做跳過的問題是什麼?從最粗略的意義上講,如果你最初設置一個負數,它會有更多的進一步去之前,它首先命中10這基本上意味着跳過一些......它可能不是最好的方式,但它是* a *方式。而且我認爲在你的最後一件事情中你的十個實際上是三個? – Chris 2012-08-02 08:21:01
當您查看某些給定解決方案所採用的速度時,您可能會發現,如果給定較大的輸入字符串,則某些解決方案會更好。對於你給的那種小字符串,我想你會很難推斷出許多論點。 – weston 2012-08-02 08:35:40