gpt4 book ai didi

C# Char.IsLetter() 无法正常工作

转载 作者:太空宇宙 更新时间:2023-11-03 19:02:03 25 4
gpt4 key购买 nike

大家。我为我糟糕的英语感到抱歉。我有一个很简单的任务:一个字符一个字符地读取文件,并计算每个字母。语言无所谓。起初,我使用了一个包含所有受限字符的字符串:

"1234567890`~!@#$%^&*()_+-=!№;%:?*(){}[];:|',./<>?  "    

这是一个愚蠢的想法,所以我决定使用:

!Char.IsLetter(data[i].letter)
data.RemoveAt(i);

没用。甚至以下都不起作用(好吧,我没想到会这样)

                if(Char.IsDigit(data[i].letter) || Char.IsSymbol(data[i].letter)||Char.IsControl(data[i].letter) ||Char.IsNumber(data[i].letter) ||Char.IsPunctuation(data[i].letter) ||Char.IsSeparator(data[i].letter) ||Char.IsSymbol(data[i].letter) ||Char.IsWhiteSpace(data[i].letter))
data.RemoveAt(i);

它仍然会让一些数字和符号溜走。最烦人的是'\r',我无法摆脱它。我需要一个可以判断字符是否为字母的解决方案。我是新手,越简单越好。提前致谢!

最佳答案

简单地计算对象数组中字母的数量:

data.Count(x => char.IsLetter(x.letter));

这使用了 LINQ Count方法并为 letter 字段调用 char.IsLetter 以确定是否应将每个字符添加到计数中。

示例:(只有字符串而不是对象数组)

var data = "ABC_123_\r_%$#";
var count = data.Count(char.IsLetter);
Console.WriteLine(count);

将按预期打印 3

请注意,您必须将:using System.Linq; 添加到您的文件的顶部,如果它还不存在的话。

关于C# Char.IsLetter() 无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34499550/

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