【问题标题】:Remove control characters in string programatically以编程方式删除字符串中的控制字符
【发布时间】:2017-05-08 14:44:23
【问题描述】:

我想删除从 0x00 到 0x1F 的所有控制字符。

我以为我会那样做:

string x = "\x1BTEST";

for (string stringHex = "00"; !stringHex.Equals("1F"); stringHex = (int.Parse(stringHex, System.Globalization.NumberStyles.HexNumber) + 1).ToString("X2"))
{
    x = x.Replace("\\x" + stringHex, "");
}

双重逃脱打击了它。行。但是怎么做呢?

【问题讨论】:

标签: c# string hex


【解决方案1】:

你可以使用 LINQ:

x = new string(x.Where(c => (int)c >= 0x1F).ToArray());

【讨论】:

  • 我喜欢 LINQ。然而,自从我学习了 C# 1.0 和 2.0 并且只是以老式的编程方式思考后,我很难应用它。但是感谢您提供的酷解决方案。
【解决方案2】:

这样你可以删除控制字符:

string input = "\u002Some Text";
string output = new string(input.Where(c => !char.IsControl(c)).ToArray());

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-03-28
    • 2010-12-02
    • 2022-01-12
    • 1970-01-01
    • 2020-10-28
    • 2011-05-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多