的我有Base64编码串是这样的:插入滑架每64个字符返回字符串
SWwgw6l0YWl0IHVuIHBldGl0IG5hdmlyZS [...] 0IG5hdmlyZSA=
输入字符串可以大大(> 1MB)。由于互操作性的原因,我需要每64个字符添加一个回车符到那个大字符串中。
的第一个猜测我是使用StringBuilder和使用方法“AppendLine”每64个字符是这样的:
string InputB64_Without_CRLF = "SWwgw6l0YWl0IHVuIHBldGl0IG5hdmlyZS [...] 0IG5hdmlyZSA=";
int BufferSize = 64;
int Index = 0;
StringBuilder sb = new StringBuilder();
while (Index < strInput.Length) {
sb.AppendLine(InputB64_Without_CRLF.Substring(Index, BufferSize));
Index += BufferSize;
}
string Output_With_CRLF = sb.ToString();
但我担心的代码部分的性能。有没有更好的方法在某个位置插入一个字符到一个字符串而不重建另一个字符串?
如果你正在使用'Convert.ToBase64String',您可以用'Base64FormattingOptions.InsertLineBreaks'参数 – 2014-09-29 19:37:31
这似乎是一个合理的方法给我。你是否测量过性能问题? – Blorgbeard 2014-09-29 19:37:35
我主要关心我的1MB数据流从一个字符串到另一个字符串的重复。但是由于.NET字符串是不可变的,我们无法避免这种情况。 – Thordax 2014-09-30 07:38:51