本文提供了五种判断字符串是否包含大写字符的方法及其实现源码,供大家实现参考。
方法1:首先判断字符串是否为空,然后逐字符判定是否为大写字母
bool hasUpperCase (string str) {
if(string.IsNullOrEmpty(str))
return false;
for (int i = 0; i < str.Length; i++) {
if (char.IsUpper (str[i]))
return true;
}
return false;
}
方法2:使用字符串的Any方法
bool HasUpperCase (string str) {
return !string.IsNullOrEmpty(str) && str.Any(c => char.IsUpper(c));
}
方法3:转换为大写然后比较是否相等
bool hasUpperCase (string str) {
if(string.IsNullOrEmpty(str))
return false;
return str != str.ToLower();
}
方法4:正则匹配方法,判断是否包含A~Z的字符
bool testCaseTwo(string str)
{
bool result = false;
if (string.IsNullOrEmpty(str))
{
return false;
}
result = Regex.IsMatch(str, "\"[A-Z]\"");
return result;
}
// 紧凑版本
bool hasUpperCase(string str) {
if (string.IsNullOrEmpty(str))
return false;
return Regex.IsMatch(str, "\"[A-Z]\"");
}
方法5:根据ASCII码进行判断,判断字符的ASCII码是否位于64到91之间
static bool testCaseFour(string str)
{
bool result = false;
if (string.IsNullOrEmpty(str))
{
return false;
}
for (int i = 0; i < str.Length; i++)
{
if (str[i] > 64 && str[i] < 91)
{
result = true;
break;
}
}
return result;
}