Amm*_*jad 0 .net c# foreach if-statement
我编写了一个控制台应用程序来计算段落中非空格字符的数量,但它无法正常工作.
int l=0;
string s;
Console.WriteLine("Enter Paragraph: ");
s = Console.ReadLine();
foreach (char c in s)
{
if (char.IsLetter(c))
{
l++;
}
}
l = Convert.ToInt32(s.Length);
Console.WriteLine("Your Paragraph Length is: " + l);
Console.ReadLine();
Run Code Online (Sandbox Code Playgroud)
因为你的问题专门删除了空格...在我看来这会更有效:
int l=0;
string s;
Console.WriteLine("Enter Paragraph: ");
s = Console.ReadLine();
l = s.Replace(" ", String.Empty).Length;
Console.WriteLine("Your Paragraph Length is: " + l);
Console.ReadLine();
Run Code Online (Sandbox Code Playgroud)
如果你想要其他的空白区域,比如标签和换行符,那么这也是一个不同的故事......
对于一个你用s.Length写的l.两个我不认为:是一个炭.
l = Convert.ToInt32(s.Length);
Run Code Online (Sandbox Code Playgroud)
尝试
!Char.IsWhiteSpace将消除空间,标签,...这可能是你正在寻找的.
int l=0;
string s;
Console.WriteLine("Enter Paragraph: ");
s = Console.ReadLine();
foreach (char c in s)
{
if (!char.IsWhiteSpace(c))
{
l++;
}
}
Console.WriteLine("Your Paragraph Length is: " + l);
Console.ReadLine();
Run Code Online (Sandbox Code Playgroud)
借用Skeet +1.当他上线时我需要一个小闪光器,所以我知道甚至不会尝试.
count = line.Count(c => !Char.IsWhiteSpace(c));
Run Code Online (Sandbox Code Playgroud)
LINQ非常简单:
var nonSpaces = line.Count(c => c != ' ');
Run Code Online (Sandbox Code Playgroud)
或者对于信件:
var letters = line.Count(char.IsLetter);
Run Code Online (Sandbox Code Playgroud)
这将为每个角色执行一个委托,但不会开始创建你真正不需要的额外字符串.