Flutter/Dart 如何判断字符是大写还是小写?
Dart/Flutter 字符大小写判断实现方案
Dart 没有内置的单个字符大小写判断API,你可以通过以下两种方式实现:
实现方式1:基于ASCII码判断(性能更高,仅支持英文字母)
英文字母大写的ASCII码范围为65~90(对应A-Z),小写范围为97~122(对应a-z),基于该规则封装工具函数:
// 判断是否为大写英文字母 bool isUpperCase(String char) { // 仅处理单个字符的输入 if (char.length != 1) return false; final int code = char.codeUnitAt(0); return code >= 65 && code <= 90; } // 判断是否为小写英文字母 bool isLowerCase(String char) { if (char.length != 1) return false; final int code = char.codeUnitAt(0); return code >= 97 && code <= 122; }
实现方式2:大小写比对实现(兼容性更强,支持带音标拉丁字符)
通过将字符和它本身的大写、小写转换结果比对判断:
bool isUpperCase(String char) { if (char.length != 1) return false; // 转大写后不变,且转小写后发生变化,说明本身是大写 return char == char.toUpperCase() && char != char.toLowerCase(); } bool isLowerCase(String char) { if (char.length != 1) return false; // 转小写后不变,且转大写后发生变化,说明本身是小写 return char == char.toLowerCase() && char != char.toUpperCase(); }
使用示例
void main() { const test1 = 'D'; const test2 = 'f'; const test3 = '@'; print(isUpperCase(test1)); // 输出 true print(isLowerCase(test1)); // 输出 false print(isUpperCase(test2)); // 输出 false print(isLowerCase(test2)); // 输出 true print(isUpperCase(test3)); // 输出 false print(isLowerCase(test3)); // 输出 false }
注意:数字、符号、中文等非英文字母类字符,以上两个方法都会返回false,符合常规业务判断逻辑。
内容的提问来源于stack exchange,提问作者bilbo_bo
相关产品推荐
相关产品推荐

