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

时间:2014-07-08 11:38:49

标签: c++ string qt int

我已经看到了关于同一个问题的一个答案,但是当我用我的问题尝试它时会感到困惑。

这是我的字符串,

bit_rate = "bitrate: 2334 kb/s"

我需要从此字符串中获取2334并将其分配给整数变量。 这怎么可能在qt创建者。我尝试了toInt(),但它始终以0作为答案。

3 个答案:

答案 0 :(得分:6)

您需要删除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;

答案 1 :(得分:2)

reference page有很多材料。实现这一点的最简单方法是根据空格拆分字符串,然后将所需的字符串转换为Int。

示例:

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

答案 2 :(得分:1)

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