给定一个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