Flutter中自定义String Extension实现单词首字母大写
完善String Extension的capitalizeEachWord方法
你可以复用已实现的capitalize()方法,结合字符串分割与拼接来完成每个单词首字母大写的功能,以下是完善后的完整代码:
extension StringExtension on String { String capitalize() { // 把字符串首字母转为大写,其余字母转为小写 if (trim().isEmpty) return ''; return "${this[0].toUpperCase()}${this.substring(1).toLowerCase()}"; // 补充toLowerCase()是为了避免原单词后续字母大写的情况,比如输入"i LOVE flutter"也能输出统一格式 } String capitalizeEachWord() { if (trim().isEmpty) return ''; // 按空格分割成单词列表 List<String> words = split(' '); // 对每个单词调用capitalize()处理,再拼接回字符串 return words.map((word) => word.capitalize()).join(' '); } String removeExtraSpaces() { // 移除单词间的多余空格 if (trim().isEmpty) return ''; return trim().replaceAll(RegExp(' +'), ' '); } }
验证示例
运行你的测试代码:
String str=' i love flutter '; print(str.removeExtraSpaces().capitalizeEachWord()); // 输出结果:I Love Flutter
补充说明
- 复用
capitalize()方法减少了重复逻辑,也方便后续统一修改首字母大写的规则 capitalize()里的toLowerCase()是可选但实用的优化,能确保单词除首字母外都是小写,适配更多输入场景
内容的提问来源于stack exchange,提问作者user22362195
相关产品推荐
相关产品推荐

