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

Dart-Flutter中如何拆分字符串为列列表并完整展示所有结果

解决Dart中拆分字符串并按序号展示的问题

你当前的代码只取了拆分后的第一个元素(split('#').first),所以只能拿到单个结果。要实现按1.example 2.example的格式展示所有拆分结果,需要两步:先完整获取拆分后的所有元素,再生成带序号的格式化文本。

核心步骤说明

  1. 正确拆分字符串:split('#')返回的是List<String>类型,不能直接赋值给String变量,先把所有拆分结果存到列表里:
List<String> splitParts = data!.list!.split('#');
  1. 生成带序号的文本:遍历列表,给每个元素加上序号后拼接成目标格式,推荐用更简洁的map+join写法:
String formattedResult = splitParts.asMap().entries.map((entry) {
  // entry.key是列表索引(从0开始),加1得到从1开始的序号
  return '${entry.key + 1}.${entry.value}';
}).join(' '); // 用空格连接每个带序号的元素

完整示例代码

void main() {
  String originalString = "example#example";
  List<String> splitParts = originalString.split('#');
  String formattedResult = splitParts.asMap().entries
      .map((e) => '${e.key + 1}.${e.value}')
      .join(' ');
  print(formattedResult); // 输出:1.example 2.example
}

替代写法(循环拼接)

如果习惯用循环,也可以这么写:

String formattedResult = '';
for (int i = 0; i < splitParts.length; i++) {
  formattedResult += '${i + 1}.${splitParts[i]} ';
}
// 去掉末尾多余的空格
formattedResult = formattedResult.trim();

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 01:01:12