利用QByteArray分离十六进制数

有时候从网络获取到一串的mac地址却是没有使用”:”或空格分隔开来,未免会让用户阅读困难起来。在Qt5.9及其以上版本QByteArray的toHex接口或许可以解决你的问题。

toHex接口

  • 返回QByteArray类型的十六进制编码副本。该十六进制编码使用数字0-9和字母a-f
  • 如果分隔符不是'\0'0,分隔符将插入十六进制字节之间。
  • 注意:该函数是在Qt 5.9中引入。
    1
    QByteArray QByteArray::toHex(char separator) const

示例

1
2
3
4
QByteArray byteArray = QByteArray::fromHex("1a2b3c4d5e6f");
byteArray.toHex(':'); // returns "1a:2b:3c:4d:5e:6f"
byteArray.toHex(0); // returns "1a2b3c4d5e6f"
byteArray.toHex('\0'); // returns "1a2b3c4d5e6f"