Flutter/Dart中如何去除字符串内多余空格并大写单词首字母
Dart字符串处理:去除多余空格并单词首字母大写
实现步骤
要达成需求,需分两步处理字符串:
- 清理空格:去除首尾空格,同时将单词间的多个连续空格合并为单个空格
- 格式化单词:将每个单词的首字母转为大写,其余字母统一为小写(确保格式一致性)
代码实现
方法一:拆分拼接法
void main() { String name = ' Aneesh devala '; // 1. 去除首尾空格,按一个或多个空格拆分单词 List<String> words = name.trim().split(RegExp(r'\s+')); // 2. 逐个格式化单词:首字母大写,其余小写 List<String> formattedWords = words.map((word) { if (word.isEmpty) return word; return word[0].toUpperCase() + word.substring(1).toLowerCase(); }).toList(); // 3. 用单个空格拼接成最终字符串 String result = formattedWords.join(' '); print(result); // 输出: Aneesh Devala }
方法二:正则替换法
void main() { String name = ' Aneesh devala '; // 先去首尾空格,再通过正则匹配单词并格式化 String result = name.trim().replaceAllMapped( RegExp(r'\b\w+\b'), (match) => match.group(0)![0].toUpperCase() + match.group(0)!.substring(1).toLowerCase() ); print(result); // 输出: Aneesh Devala }
关键细节说明
trim():仅处理字符串首尾的空格,是清理操作的基础RegExp(r'\s+'):匹配任意数量的连续空白字符,拆分时自动合并单词间的多余空格map()遍历:对每个单词单独处理,避免因原单词大小写不一致导致格式混乱replaceAllMapped():通过正则直接定位每个单词,一步完成匹配与替换,代码更简洁
内容的提问来源于stack exchange,提问作者Aneesh A
相关产品推荐
相关产品推荐

