QStringList.indexOf()没有返回正确的值

时间:2012-10-01 04:51:14

标签: c++ qt

我在文件中有一行,如下所示:

DEF PatientLoadView Group {

我正在尝试解析文件以获取上一行中单词“DEF”之后的单词。 我试图找到使用string.split()拆分行,然后使用QStringList类的indexOf函数找到“DEF”的索引,然后得到它旁边的单词。但indexOf函数为此行返回-1。对于其他此类行,它返回正确的值。可能是什么问题呢? 我的代码如下:

QString line = in.readLine();
if(line.contains("DEF"))
{
    QStringList lineSplit = line.split(" ");
    int index = lineSplit.indexOf("DEF",0);
    QString nodeName = lineSplit[index+1];

2 个答案:

答案 0 :(得分:0)

确保DEF中的line字符之前没有任何内容。

特别要确保没有'\ n'或其他控制字符。

答案 1 :(得分:0)

我找到了问题的原因 - 该行以标签'\ t'开头,这是我读到的字符串的一部分。删除此标签字符对我来说很好,我现在能够得到正确的结果。

感谢您的帮助。