如何在qt creator中将QString转换为int

how to convert QString into int in qt creator

本文关键字:QString 转换 int 中将 creator qt      更新时间:2023-10-16

我已经看到了一个关于这个问题的答案,但是当我尝试它与我的问题时,它变得困惑了。

这是我的字符串,

bit_rate = "bitrate: 2334 kb/s"

我需要从这个字符串中获得2334,并将其分配给一个整数变量。这在qt creator中是如何实现的?我试过toInt(),但它总是给出0作为答案。

您需要去掉bitrate:前缀和kb/s后缀。最好的方法是使用QRegExpQRegularExpression提取字符串的数字部分,然后调用toInt()

这里的例子:

QString str = "bitrate: 3543 kb/s";
int value;
QRegExp re("bitrate:\s*(\d+)\s*.*");
if (re.indexIn(str) != -1) {
    value = re.cap(1).toInt();
} else {
    qDebug() << "String not matched.";
    return;
}
qDebug() << value;

参考页面上有大量关于这方面的资料。实现这一点的最简单方法是基于空格拆分字符串,然后将您想要的字符串转换为Int。

的例子:

QString str = "bitrate: 3543 kb/s";
QStringList lst = str.split(" ");
Int value = lst[1].toInt();

QTextIStream stream("bitrate: 3543 kb/s");
QString prefix, sufix;
int result;
stream >> prefix >> result >> sufix;