C# 检查字符是否为空
我想检查字符串是否只包含正确的字母。 为此,我使用了C# 检查字符是否为空,c#,.net,char,C#,.net,Char,我想检查字符串是否只包含正确的字母。 为此,我使用了Char.isleter。 我的问题是,当有像éorá这样的字符时,它们也被认为是正确的字母,而这不应该是正确的 是否有可能检查字符是否为正确的字母a-Z或a-Z,而不使用特殊的字母,如á?您可以使用正则表达式\w或[a-zA-Z]对其进行检查您可以使用char.isleter(c)&&c
Char.isleter
。
我的问题是,当有像éorá这样的字符时,它们也被认为是正确的字母,而这不应该是正确的
是否有可能检查字符是否为正确的字母a-Z或a-Z,而不使用特殊的字母,如á?您可以使用正则表达式
\w
或[a-zA-Z]
对其进行检查您可以使用char.isleter(c)&&c<128
。或者仅仅是c<128
本身,这似乎最符合您的问题
bool IsEnglishLetter(char c)
{
return (c>='A' && c<='Z') || (c>='a' && c<='z');
}
但是您通过过滤字符来解决编码问题。务必调查其他应用程序确切了解的内容
可能您只需要使用
Encoding.GetEncoding(someCodePage)
进行编写 使用Linq以方便访问:
if (yourString.All(char.IsLetter))
{
//just letters are accepted.
}
我必须导出一个文件,然后将其导入另一个应用程序,如果有特殊符号,例如,……当然,……或á是字母……我不知道为什么它们不是字母,但你可以强制它们返回ascii,因为我认为第二个更好,第一个也可能接受重音字符。不是100%确定,但我记得不会的。我在这方面遇到了一些麻烦\例如,w与挪威的符号不匹配。启用unicode有一种方法:但我还没有尝试过。我也不确定。既然我们都确信[a-zA-Z]会起作用,任何阅读代码的人都会起作用,那就更好了。嗯?OP明确指出Char.isleter不执行所需的操作。c<128本身将返回非字母
// Create the regular expression
string pattern = @"^[a-zA-Z]+$";
Regex regex = new Regex(pattern);
// Compare a string against the regular expression
return regex.IsMatch(stringToTest);
if (yourString.All(char.IsLetter))
{
//just letters are accepted.
}