c# - 我正在尝试检查我的输入是否包含小写或大写字母:
问题描述
我正在尝试在 C# 中检查我输入的输入是否有大写字母或小写字母,并指定有多少个小写字母和大写字母。“输入”是您输入的输入的字符串长度,“字母”是字母 a - z 小写的字符串数组。
前两个语句检查“输入”是否包含小写字母,否则如果“输入”包含小写字母,它们似乎都可以工作,但由于某种原因它不能同时检查它们:最后的 else if 语句检查是否输入至少有 1 个大写和 1 个小写:
for(int i = 0; i < letters.Length; i++)
{
if(Input.Contains(letters[i].ToLower()))
{
WriteLine("Lowercase");
}
else if (Input.Contains(letters[i].ToUpper()))
{
WriteLine("Uppercase");
{
else if (Input.Contains(letters[i].ToLower()) &&
Input.Contains(letters[i].ToUpper()))
{
WriteLine("Uppercase and Lowercase");
}
}
解决方案
您可以编写一个迭代字符串中的字符的方法,并使用char.IsUpper
和char.IsLower
方法为大写/小写字符维护一个计数器。
(int,int) CheckCase(string value)
{
var countUpper = 0;
var countLower = 0;
foreach(var c in value)
{
if(char.IsUpper(c))
{
countUpper++;
}
else if(char.IsLower(c))
{
countLower++;
}
}
return (countUpper,countLower);
}
正如所观察到的,这将只需要对字符串中的字符进行一次迭代。
您现在可以将该方法用作
var (countUpper,countLower) = CheckCase("SampleString");
掌握大写和小写字符的数量后,您现在可以实现显示逻辑
推荐阅读
- python - Pandas 系列通过 CSV 导出导入更改
- c++ - 在 C++ 中初始化后更改引用
- python - Interact/Ipywidgets 中是否有类似于 Streamlit Multiselect 的东西?
- android - 为什么使用 Camera2 API 时前置摄像头打不开?
- flutter - Flutter 应用程序仅接收到特定令牌的 FCM 消息
- azure - Remove-AzSqlDatabaseDataMaskingRule 忽略表和列名称
- microsoft-graph-api - MS Graph 获取报告失败
- java - 如何在同一个bolt中处理不同的元组(Storm)
- c++ - 为什么此代码片段适用于 C++17,而编译器在使用 C++11 时会报错?
- java - 在 SpringBoot 中加入表时“找不到列”