gpt4 book ai didi

Qt 检查 QString 以查看它是否是有效的十六进制值

转载 作者:行者123 更新时间:2023-12-01 07:40:25 26 4
gpt4 key购买 nike

我正在与 Qt 合作开发一个现有项目。我正在尝试通过串行电缆将字符串发送到恒温器以向其发送命令。我需要确保字符串只包含 0-9、a-f,并且长度不超过 6 个字符。我试图使用 QString.contains,但我目前被卡住了。任何帮助,将不胜感激。

最佳答案

您有两个选择:

使用 QRegExp

使用 QRegExp类来创建一个正则表达式来找到你要找的东西。在您的情况下,以下内容可能会起作用:

QRegExp hexMatcher("^[0-9A-F]{6}$", Qt::CaseInsensitive);
if (hexMatcher.exactMatch(someString))
{
// Found hex string of length 6.
}

更新

Qt 5 用户应该考虑使用 QRegularExpression 而不是 QRegExp :
QRegularExpression hexMatcher("^[0-9A-F]{6}$",
QRegularExpression::CaseInsensitiveOption);
QRegularExpressionMatch match = hexMatcher.match(someString);
if (match.hasMatch())
{
// Found hex string of length 6.
}

仅使用 QString

检查字符串的长度,然后检查是否可以成功将其转换为整数(使用基数为 16 的转换):
bool conversionOk = false;
int value = myString.toInt(&conversionOk, 16);
if (conversionOk && myString.length() == 6)
{
// Found hex string of length 6.
}

关于Qt 检查 QString 以查看它是否是有效的十六进制值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16860490/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com