Flutter中如何为String设置条件?循环生成TextField的序号补零问题
报错原因
你编写的三目运算符真值分支存在语法错误:Dart 不支持"0"i + 1这种字符串和变量直接拼接的写法,插值表达式${}内的代码必须符合 Dart 语法规范,因此抛出Expected to Find '}'编译错误。
正确实现方案
方案1:修正原有三目表达式写法
调整真值分支的字符串拼接逻辑即可:
labelText: '${i < 10 ? "0${i + 1}" : (i + 1).toString()}',
方案2:使用 Dart 内置补位方法(更推荐)
Dart 字符串内置的padLeft方法专门用于左侧补位,无需手动写条件判断,代码更简洁易维护:
labelText: (i + 1).toString().padLeft(2, '0'),
- 第一个参数为最终需要的字符串总长度,你的需求为2位序号,因此填2
- 第二个参数为长度不足时左侧填充的字符,填
'0'即可实现自动补0的效果
内容的提问来源于stack exchange,提问作者sid heart
相关产品推荐
相关产品推荐

