我想允许用户输入字符、数字和特殊字符,但不允许输入 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
}
}
这使得代码有点慢,因为我必须比较每个字符串及其字符。
谁能建议更好的方法?
好吧,一方面你可以编写代码simpler:
foreach (char c in value)
{
if (c < 32 || c > 126)
{
...
}
}
或者使用 LINQ,如果您只需要知道是否any字符是非 ASCII:
bool bad = value.Any(c => c < 32 || c > 126);
...但从根本上讲,如果不迭代字符串中的每个字符,您将无法检测非 ASCII 字符...
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)