C#计算字符串中大小写字母的数量
大家好,我被要求做一项任务,计算一个字符串中元音、辅音、大写字母和小写字母的数量 我在计算字符串中的大小写字母时遇到困难。 我可以成功地计算元音和常量的数量,但大写字母和小写字母似乎是一个难题 代码如下:C#计算字符串中大小写字母的数量,c#,string,for-loop,foreach,C#,String,For Loop,Foreach,大家好,我被要求做一项任务,计算一个字符串中元音、辅音、大写字母和小写字母的数量 我在计算字符串中的大小写字母时遇到困难。 我可以成功地计算元音和常量的数量,但大写字母和小写字母似乎是一个难题 代码如下: public void Calculate() { foreach(string sentence in sentenceList) { sentences++; for (int i = 0;
public void Calculate()
{
foreach(string sentence in sentenceList)
{
sentences++;
for (int i = 0; i < sentence.Length; i++)
{
if (vowelsArray.Contains(sentence[i]))
{
vowels++;
}
else if (consonantsArray.Contains(sentence[i]))
{
consonants++;
}
else if (char.IsUpper(sentence[i]))
{
upperCaseLetters++;
}
else if (char.IsLower(sentence[i]))
{
lowerCaseLetters++;
}
}
}
}
public void Calculate()
{
foreach(句子列表中的字符串句子)
{
句子++;
for(int i=0;i<句子长度;i++)
{
if(元音数组.Contains(句子[i]))
{
元音++;
}
else if(辅音sarray.Contains(句子[i]))
{
辅音++;
}
else if(char.IsUpper(句子[i]))
{
大写字母++;
}
else if(字符IsLower(句子[i]))
{
小写字母++;
}
}
}
}
大写字母和小写字母的值为0。(不应该这样)
有什么建议吗?谢谢 在循环中,你每次只会碰到其中一个条件,所以如果你的前两个条件涵盖了所有的可能性(这很有可能,因为这涵盖了所有元音和辅音!)你永远不会到达你的第三个和第四个块。在循环中,你每次只会碰到其中的一个条件,所以如果你的前两个条件涵盖了所有的可能性(这很可能,因为这涵盖了所有的元音和辅音!)你永远不会到达你的第三个和第四个街区。你之前不需要
其他的
string text = "This is Sample";
int upcount = 0;
int lowcount = 0;
for (int i = 0; i < text.Length; i++)
{
if (char.IsUpper(text[i])) upcount++;
if (char.IsLower(text[i])) lowcount++;
}
Console.Write(upcount);
Console.Write(lowcount);
else if (char.IsUpper(sentence[i]))
因为您有两组独立的条件:
元音/辅音
大写/小写
您不需要在之前使用其他
else if (char.IsUpper(sentence[i]))
因为您有两组独立的条件:
元音/辅音
大写/小写
您有一系列if
/else
语句,匹配的第一个条件(元音或辅音)将阻止任何未来条件的匹配。将if
/else
链分成两条链:
- 元音与辅音
- 大写与小写
请参阅下面的更新代码:
public void Calculate()
{
foreach(string sentence in sentenceList)
{
sentences++;
for (int i = 0; i < sentence.Length; i++)
{
if (vowelsArray.Contains(sentence[i]))
{
vowels++;
}
else if (consonantsArray.Contains(sentence[i]))
{
consonants++;
}
// the else was removed here!
if (char.IsUpper(sentence[i]))
{
upperCaseLetters++;
}
else if (char.IsLower(sentence[i]))
{
lowerCaseLetters++;
}
}
}
}
public void Calculate()
{
foreach(句子列表中的字符串句子)
{
句子++;
for(int i=0;i<句子长度;i++)
{
if(元音数组.Contains(句子[i]))
{
元音++;
}
else if(辅音sarray.Contains(句子[i]))
{
辅音++;
}
//其他人在这里被移除了!
if(char.IsUpper(句子[i]))
{
大写字母++;
}
else if(字符IsLower(句子[i]))
{
小写字母++;
}
}
}
}
您有一系列if
/else
语句,匹配的第一个条件(元音或辅音)将阻止任何未来条件的匹配。将if
/else
链分成两条链:
- 元音与辅音
- 大写与小写
请参阅下面的更新代码:
public void Calculate()
{
foreach(string sentence in sentenceList)
{
sentences++;
for (int i = 0; i < sentence.Length; i++)
{
if (vowelsArray.Contains(sentence[i]))
{
vowels++;
}
else if (consonantsArray.Contains(sentence[i]))
{
consonants++;
}
// the else was removed here!
if (char.IsUpper(sentence[i]))
{
upperCaseLetters++;
}
else if (char.IsLower(sentence[i]))
{
lowerCaseLetters++;
}
}
}
}
public void Calculate()
{
foreach(句子列表中的字符串句子)
{
句子++;
for(int i=0;i<句子长度;i++)
{
if(元音数组.Contains(句子[i]))
{
元音++;
}
else if(辅音sarray.Contains(句子[i]))
{
辅音++;
}
//其他人在这里被移除了!
if(char.IsUpper(句子[i]))
{
大写字母++;
}
else if(字符IsLower(句子[i]))
{
小写字母++;
}
}
}
}
我已经使用
但以下是对我有效的代码:
using System;
using System.Collections.Generic;
using System.Linq;
public class Program
{
public static void Main()
{
int upper = 0;
int lower = 0;
string upperLowerCase = "This Is A Test";
char[] splitString = upperLowerCase.ToCharArray();
for(int i = 0; i < splitString.Length; i++)
{
if(char.IsUpper(splitString[i]))
{
upper++;
}
else
{
lower++;
}
}
Console.WriteLine("Total Upper Case Letters: " + upper.ToString());
Console.WriteLine("Total Lower Case Letters: " +lower.ToString());
}
}
// Output
// Total Upper Case Letters: 4
// Total Lower Case Letters: 10
需要更改为:
if (char.IsUpper(sentence[i]))
{
upperCaseLetters++;
}
else
{
lowerCaseLetters++;
}
我希望这有帮助 我已经使用
但以下是对我有效的代码:
using System;
using System.Collections.Generic;
using System.Linq;
public class Program
{
public static void Main()
{
int upper = 0;
int lower = 0;
string upperLowerCase = "This Is A Test";
char[] splitString = upperLowerCase.ToCharArray();
for(int i = 0; i < splitString.Length; i++)
{
if(char.IsUpper(splitString[i]))
{
upper++;
}
else
{
lower++;
}
}
Console.WriteLine("Total Upper Case Letters: " + upper.ToString());
Console.WriteLine("Total Lower Case Letters: " +lower.ToString());
}
}
// Output
// Total Upper Case Letters: 4
// Total Lower Case Letters: 10
需要更改为:
if (char.IsUpper(sentence[i]))
{
upperCaseLetters++;
}
else
{
lowerCaseLetters++;
}
我希望这有帮助 根据Sajeetharan的回答,版本稍微快一点
string text = "This is Sample";
int upcount = 0;
int lowcount = 0;
for (int i = 0; i < text.Length; i++)
{
if (text[i]>64 && text[i]<91) upcount++;
else if (text[i]>96 && text[i]<123) lowcount++;
}
Console.Write(upcount);
Console.Write(lowcount);
string text=“这是示例”;
int-upcount=0;
int lowcount=0;
for(int i=0;i 如果(文本[i]>64&&text[i]96&&text[i]根据萨吉塔兰的回答,速度稍微快一点
string text = "This is Sample";
int upcount = 0;
int lowcount = 0;
for (int i = 0; i < text.Length; i++)
{
if (text[i]>64 && text[i]<91) upcount++;
else if (text[i]>96 && text[i]<123) lowcount++;
}
Console.Write(upcount);
Console.Write(lowcount);
string text=“这是示例”;
int-upcount=0;
int lowcount=0;
for(int i=0;i 如果(文本[i]>64&&text[i]96&&text[i]这正是我在我的程序中得到的,你测试过这个并看到结果了吗?我刚刚得到0。这正是我在我的程序中得到的,你测试过这个并看到结果了吗?我刚刚得到0。你可以使用一行代码来检查上面的代码,然后使用同一行代码并将其更改为检查下面的var cnt=YourString.Count(c=>Char.IsUpper(c))
您可以使用一行代码检查上限,然后使用同一行代码并将其更改为检查下限var cnt=YourString.Count(c=>Char.IsUpper(c))
你是明星!哈哈,这么简单的修正。谢谢你,你是明星!哈哈,这么简单的修正。谢谢你,OP是否需要,否则如果检查小写字母?如果字母不是大写字母,那么显然它将是b