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

在Dart和Flutter中如何将多个连续空格替换为单个空格

Dart 连续多空格替换为单空格的实现方案

报错原因

Dart与Python的join方法逻辑存在差异:Python中join是字符串类的方法,入参为待拼接的可迭代对象;Dart中join是列表类的方法,入参为拼接用的分隔符,二者调用顺序完全相反。

实现方式

  • 方式1:沿用分割后拼接的思路,调整调用顺序即可
// 从TextField拿到的输入字符串
String myString = TextFieldController.text;
// 按任意空白字符分割后用单空格拼接,可同时处理空格、制表符、换行等连续空白
String result = myString.split(RegExp(r'\s+')).join(' ');

// 如果仅需要处理空格,不需要匹配其他空白符,可替换为如下写法
String result = myString.split(' ').where((str) => str.isNotEmpty).join(' ');
  • 方式2:直接用正则替换,写法更简洁
// 匹配2个及以上的连续空白,替换为单个空格
String result = myString.replaceAll(RegExp(r'\s{2,}'), ' ');

// 仅匹配连续空格的写法
String result = myString.replaceAll(RegExp(r' {2,}'), ' ');

补充说明

如果需要同时去除输入字符串首尾的冗余空格,可在处理前调用trim()方法:

String result = myString.trim().replaceAll(RegExp(r' {2,}'), ' ');

内容的提问来源于stack exchange,提问作者Mithson

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 21:18:04