如何在dart中解析String中的6位十六进制整数?

问题描述 投票:0回答:1

我找不到将“0xFFBBD1F0”这样的字符串解析为整数0xFFBBD1F0的方法。实际上我只需要创建一个只有“0xFFBBD1F0”字符串的颜色。

我需要从服务器获取的字符串创建一个颜色,看起来像“FFFFFF”。颜色通常创建为 Color(0xFFFFFFFF)。所以我编写了一段代码,将“0xFF”添加到从服务器获取的部分并使用 int.parse 方法。比我尝试了这种方法的另一种组合,带基数参数和不带基数参数,我尝试以某种方式更改传递给 int.parse 的字符串,但没有任何效果。在尝试时,我只得到一个数字,例如 4290499056 或 FormatException。

代码示例:

void main() {
  String data = '0xFFBBD1F0';
  var cl = int.parse(data, radix: 16);
  print(cl);
}

相信上面的代码应该可以正常工作,但我得到了这个:

Uncaught Error: FormatException: 0xFFBBD1F0

将代码更改为:

void main() {
  String data = '0xFFBBD1F0';
  var cl = int.parse(data);
  print(cl);
}

只会让我得到输出值:

4290499056
当我想得到 0xFFBBD1F0 时。

那么在 dart 中是否可以将字符串 '0xFFBBD1F0' 转换为 int 0xFFBBD1F0 ?如果是的话,又是如何呢?如果不是,有没有办法创建仅包含“BBD1F0”字符串作为输入的颜色?

dart parsing colors hex
1个回答
0
投票

这是一项非常复杂且不平凡的任务。
试试这个代码。

void main() {
  String data = '0xFFBBD1F0';
  // So is that possible in dart to convert the String '0xFFBBD1F0' to the int 0xFFBBD1F0?
  // And...
  // ...convert the String '0xFFBBD1F0' to the int 0xFFBBD1F0
  var cl = int.parse(data);
  print(cl);
  // Yes!!! It works!
  print(cl == 0xFFBBD1F0);
}
© www.soinside.com 2019 - 2024. All rights reserved.