如何在TextField中按每两个一组拆分输入单词?
解决方案
你可以通过步长为2的循环实现每两个单词一组的拆分,同时处理输入中可能存在的多空格问题,代码示例如下:
onChanged(String value) { // 处理输入:去除首尾空格,按空格拆分后过滤空字符串(避免多空格导致的空元素) final words = value.trim().split(' ').where((word) => word.isNotEmpty).toList(); final twoWordGroups = <String>[]; // 每两个单词为一组遍历 for (int i = 0; i < words.length; i += 2) { String group = words[i]; // 若存在下一个单词,拼接进当前组 if (i + 1 < words.length) { group += ' ' + words[i + 1]; } twoWordGroups.add(group); } // 输出分组结果(这里可替换为你的业务逻辑) for (var group in twoWordGroups) { print(group); } }
逻辑说明
- 输入预处理:先用
trim()去掉首尾空格,再通过split(' ')拆分单词,最后用where过滤掉空字符串,避免用户输入多空格时产生无效的空元素。 - 分组逻辑:以步长
2遍历单词列表,每次取当前索引和下一个索引的单词拼接成一组;如果最后只剩一个单词,就单独作为一组。
测试你的示例输入"Split two words per sentence in the textfield",会输出:
Split two words per sentence in the textfield
内容的提问来源于stack exchange,提问作者MElochukwu
相关产品推荐
相关产品推荐

