You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter/Dart中如何去除字符串内多余空格并大写单词首字母

Dart字符串处理:去除多余空格并单词首字母大写

实现步骤

要达成需求,需分两步处理字符串:

  1. 清理空格:去除首尾空格,同时将单词间的多个连续空格合并为单个空格
  2. 格式化单词:将每个单词的首字母转为大写,其余字母统一为小写(确保格式一致性)

代码实现

方法一:拆分拼接法

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 15:06:46