Flutter中如何拆分扫描字符串并获取列表最后元素?
解决Flutter字符串拆分问题
你当前的问题是没有对scanBarcode字符串做拆分,直接把整个字符串塞进了列表,所以item列表里只有一个元素(就是完整的"Apple 20"),不管怎么取最后一个元素,得到的都是整个字符串。
正确的处理步骤:
- 用
split()方法按空格拆分字符串,生成包含拆分后内容的列表:
String scanBarcode = "Apple 20"; // 按单个空格拆分,得到["Apple", "20"] List<String> item = scanBarcode.split(' ');
- 然后直接取列表的最后元素即可:
// 两种方式都可以 String test = item[item.length - 1]; // 更简洁的写法 String test = item.last;
进阶处理(兼容多空格/首尾空格场景)
如果扫描的字符串可能有多个连续空格,或者首尾带空格,可以先去除首尾空格,再按任意数量空格拆分:
List<String> item = scanBarcode.trim().split(RegExp(r'\s+'));
完整Flutter示例
class BarcodeScanPage extends StatelessWidget { final String scanBarcode = "Apple 20"; @override Widget build(BuildContext context) { List<String> item = scanBarcode.split(' '); return MaterialApp( home: Scaffold( body: Center( // 显示拆分后的数字部分 child: Text(item.last), ), ), ); } }
内容的提问来源于stack exchange,提问作者Shoyo
相关产品推荐
相关产品推荐

