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

Flutter中如何将整数列表转换为十六进制列表?

解决方案

错误原因很明确:toRadixString(16)是Dart中int类型专属方法,你之前尝试直接在List<int>对象上调用它,自然会报错。你代码里的map遍历逻辑方向是对的,以下是具体修正方案:

基础版(直接转换)

如果只需要基础的十六进制字符串(比如10转为"a",255转为"ff"),直接对列表内每个int元素调用方法即可:

..value = value.map((int num) => num.toRadixString(16)).toList();

优化版(标准两位格式)

如果需要符合规范的两位十六进制格式(比如10转为"0A"或"0a",避免单字符),可以用字符串补全处理:

// 生成大写两位十六进制字符串列表
..value = value.map((int num) => num.toRadixString(16).padLeft(2, '0').toUpperCase()).toList();

// 生成小写两位十六进制字符串列表
..value = value.map((int num) => num.toRadixString(16).padLeft(2, '0').toLowerCase()).toList();

额外注意

如果protos.WriteCharacteristicRequest的value字段实际需要的是Uint8List而非字符串列表,那你可能误解了需求——此时不需要转换十六进制字符串,直接传入原整数列表即可(Uint8List是List<int>的子类):

..value = Uint8List.fromList(value);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 23:15:39