c# - 检测字符串中的垃圾字符

标签 c# string

我想允许用户输入字符、数字和特殊字符,但不允许输入 ascii 值大于 127 的垃圾字符(例如 ♠ ♣ 等)。

我有这样的功能

            for (int i = 0; i < value.Length; i++) // value is input string
            {
                if ((int)value[i] < 32 || (int)value[i] > 126)
                {

                         // show error

                 }

            }

这会使代码变慢,因为我必须比较每个字符串及其字符。 谁能建议更好的方法?

最佳答案

一方面,您可以使代码更简单:

foreach (char c in value)
{
    if (c < 32 || c > 126)
    {
        ...
    }
}

或者使用 LINQ,如果您只需要知道任何字符是否为非 ASCII:

bool bad = value.Any(c => c < 32 || c > 126);

...但从根本上说,如果不遍历字符串中的每个字符,您将无法检测到非 ASCII 字符...

关于c# - 检测字符串中的垃圾字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7254232/

相关文章:

python - 创建模式来检测序列的出现,以便您可以限制在哪些情况下替换输入字符串中检测到的子字符串

c# - RDLC 报告中的渲染 PDF 中不显示 Base64 图像

c# - 如何在 Javascript 中比较来自 C# Viewbag 的值?

c# - 在 64 位计算机上以 32 位运行 C# 应用程序

java - 尝试理解和重现正则表达式模式

java - 慢慢地尝试用java编写一些代码来说明括号的插入是否正确(算术)

c# - 由于缺少 XSD 文件,无法反序列化 xml 文档

c# - iOS 上的 Xamarin Forms,调试元素变为 null

string - 在 Perl 中打印字符串

python - 如何在 Python 中获取字符串的子字符串?