如何拆分从文件中提取的文本?
USA Florida
Russia Murmansk
Germany Bonn
在美国,佛罗里达,俄罗斯,摩尔曼斯克......每个单词都应保存在QString中。 基本上我是这样做的:
QFile df("../MyData/visit.DAT");
if (!df.open(QIODevice::ReadOnly | QIODevice::Text)) {
qDebug()<<"Could not open file for reading";
return;
}
QTextStream txStream(&df);
while (!txStream.atEnd()) {
QString text = txStream.readLine();
QStringList splitD = text.split(" ");
qDebug() << "-"<<splitD;
}
dataFile.close();
当我尝试用.value(index)
从QStringList获取值时,我得到两个单词的同一行。
如何以正确的方式分割这些单词?
答案 0 :(得分:0)
您将整个List“splitData”放到qDebug中。这包含两个项目“美国”和“佛罗里达”。您的代码很可能以您希望的方式工作,但您错误地解释了输出。 尝试:
qDebug() << splitData.at(0);
qDebug() << splitData.at(1);
这应该给你两行:
USA
Florida
答案 1 :(得分:0)
您可以使用操作员»或者您可以拆分。运算符»也可以连接。所以你可以这样做:
QString country, city;
txStream » country » city;
答案 2 :(得分:0)
我通过在split方法中传递制表符来弄明白,所以在QStringList
中将从行返回两个单词,访问它们而不会崩溃应用程序。
QTextStream txStream(&df);
while (!txStream.atEnd()) {
QString text = txStream.readLine();
QStringList splitD = text.split("\t");
if (i%2==0) {
qDebug() << "Country : "<<splitD.at(0);
i++;
} else {
qDebug() << "City : "<<splitD.at(1);
i++;
}
}