如何在Dart语言中编写代码提取给定字符串中的大写字母
在Dart中提取字符串里的大写字母
刚好遇到过类似需求,给你两种实用的实现方式,都能完美适配你给出的示例场景:
方法1:正则表达式(简洁高效)
用正则匹配所有大写英文字母是最快捷的方式,代码量少还易读:
void main() { String name = 'deryaKimlonLeo'; // 定义匹配大写字母的正则规则 final upperCaseRegex = RegExp(r'[A-Z]'); // 获取所有匹配的结果 final matches = upperCaseRegex.allMatches(name); // 将匹配到的字符拼接成最终字符串 final result = matches.map((match) => match.group(0)).join(); print(result); // 输出结果:KL }
原理很简单:[A-Z]会匹配所有A到Z的大写英文字母,allMatches会返回字符串中所有符合规则的匹配项,最后通过map提取每个匹配的字符,再用join拼接成完整的结果字符串。
方法2:遍历字符判断(直观可控)
如果你不想依赖正则,也可以手动遍历每个字符,通过大小写转换对比来判断是否为大写字母:
void main() { String name = 'deryaKimlonLeo'; String result = ''; for (final char in name.split('')) { // 只有当字符本身是大写,且转小写后和原字符不同时,才判定为大写字母(避免数字/符号干扰) if (char == char.toUpperCase() && char != char.toLowerCase()) { result += char; } } print(result); // 输出结果:KL }
这种方式的好处是逻辑清晰,你可以在遍历过程中灵活添加其他判断条件(比如过滤特定字符),适合需要自定义规则的场景。
内容的提问来源于stack exchange,提问作者Yunus Kocatas
相关产品推荐
相关产品推荐

