gpt4 book ai didi

c# - 在 C# 中修复 JavaScript 的字符串

转载 作者:行者123 更新时间:2023-11-30 14:39:28 26 4
gpt4 key购买 nike

我有一个函数可以修复 C# for JavaScript 中的不可打印字符。但是它工作起来很慢!如何提高这个功能的速度?

private static string JsStringFixNonPrintable(string Source)
{
string Result = "";
for (int Position = 0; Position < Source.Length; ++Position)
{
int i = Position;
var CharCat = char.GetUnicodeCategory(Source, i);
if (Char.IsWhiteSpace(Source[i]) ||
CharCat == System.Globalization.UnicodeCategory.LineSeparator ||
CharCat == System.Globalization.UnicodeCategory.SpaceSeparator) { Result += " "; continue; }
if (Char.IsControl(Source[i]) && Source[i] != 10 && Source[i] != 13) continue;
Result += Source[i];
}
return Result;
}

最佳答案

我已经使用 StringBuilder 类重新编码了您的代码片段,具有预定义的缓冲区大小...这比您的示例快得多。

    private static string JsStringFixNonPrintable(string Source)
{
StringBuilder builder = new StringBuilder(Source.Length); // predefine size to be the same as input
for (int it = 0; it < Source.Length; ++it)
{
var ch = Source[it];
var CharCat = char.GetUnicodeCategory(Source, it);
if (Char.IsWhiteSpace(ch) ||
CharCat == System.Globalization.UnicodeCategory.LineSeparator ||
CharCat == System.Globalization.UnicodeCategory.SpaceSeparator) { builder.Append(' '); continue; }
if (Char.IsControl(ch) && ch != 10 && ch != 13) continue;
builder.Append(ch);
}
return builder.ToString();
}

关于c# - 在 C# 中修复 JavaScript 的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6381090/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com