[英]how to convert QString into int in qt creator
我已經看到了關於同一個問題的一個答案但是當我用我的問題嘗試它時會感到困惑。
這是我的字符串,
bit_rate = "bitrate: 2334 kb/s"
我需要從這個字符串中獲取2334
並將其分配給一個整數變量..這在qt creator中是如何實現的。 我試過toInt()
,但它總是給出0
作為答案。
你需要擺脫bitrate:
前綴和kb/s
后綴。 最好的方法是使用QRegExp
或QRegularExpression
提取字符串的數字部分,然后調用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;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.