2014-01-26 72 views
-1

我在互聯網上看到很多關於解析空格分隔的字符串變量的stakoverflow,但在解析Qt空間的QString變量時我什麼也沒有,我真的很感謝任何有關如何做到這一點的見解。Qt字符串解析

例如,如果我有一個「Bob 1,2,3」的QString,並且想要設置name =「Bob」num1 = 1,num2 = 2和num3 = 3。

+0

看一看[QTextStream(http://qt-project.org/doc/qt-4.8/qtextstream.html),這就是可以發現作爲突出的命中谷歌搜索** [qt串流](https://www.google.de/search?q=qt+string+streams&ie=utf-8&oe=utf-8&rls=org.mozilla:en-US:official&client= firefox-a&gws_rd = cr&ei = i23lUp2tHMjNtQadm4DoCQ)**你一定要努力改進你的谷歌! –

回答

8
QString str = "Bob 1, 2, 3"; 

QRegExp rx("[, ]");// match a comma or a space 
QStringList list = str.split(rx, QString::SkipEmptyParts); 

qDebug() << list; 

QString name = list.at(0); 
QList <int> nums; 
for(int i = 1; i < list.size(); i++) 
{ 
    nums.append(list.at(i).toInt()); 
} 

qDebug() << "Name:" << qPrintable(name); 
// foreach(int num, nums) 
// { 
//  qDebug() << "num:" << num; 
// } 
for(int i = 0; i < nums.size(); i++) 
{ 
    qDebug() << qPrintable("num" + QString::number(i+1) + ":") << nums.at(i); 
} 

輸出

("Bob", "1", "2", "3") 
Name: Bob 
num1: 1 
num2: 2 
num3: 3