c++ - 从字母数字 QString 中提取数字

标签 c++ qt integer qt5 alphanumeric

我有一个 "s150 d300" 的 QString。如何从 QString 中获取数字并将其转换为整数。简单地使用“toInt”是行不通的。

比方说,从"s150 d300" 的QString 中,只有字母'd' 之后的数字 对我有意义。那么如何从字符串中提取'300'的值呢?

非常感谢您的宝贵时间。

最佳答案

如果你能做到,为什么要这么麻烦:

#include <QDebug>
#include <QString>

const auto serialNumberStr = QStringLiteral("s150 d300");

int main()
{
    const QRegExp rx(QLatin1Literal("[^0-9]+"));
    const auto&& parts = serialNumberStr.split(rx, QString::SkipEmptyParts);

    qDebug() << "2nd nbr:" << parts[1];
}

打印出来:2nd nbr: "300"

关于c++ - 从字母数字 QString 中提取数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45317583/

相关文章:

qt - 无法在 TextEdit 上突出显示

python - 将 C++ 代码与 Python 接口(interface)的最佳方式是什么?

c++ - 在 C++ 函数中确定左值和右值

c++ - 在具有模板和继承的 C++ 中使用未声明的标识符

c++ - 在本地定义的结构中模拟非本地(或自由)变量

c++ - 将 QLineEdit 变量的值分配给 QStringList 变量

c++ - 向 QListWidget 添加操作

Java:更改二进制数(如 1010)并反转位。 1010 = 0101。0's to 1' 和 1's to 0'

arrays - golang 中包含整数和 nil 值的数组?

java - 我如何从java中的整数中获取 double 值?