在Qt中搜索QStringList中的QString的一部分

时间:2016-05-31 14:22:21

标签: c++ qt

在QString中,contains()方法的工作方式如下:

QString s = "long word";
s.contains("long"); // -> True

我认为QStringList的工作方式类似,但它没有:

QStringList s;
s << "long word";
s << "longer word";
s.contains("long"); // -> False

QStringList包含对完全匹配的搜索,这不会像我想要的那样工作。有没有一种简单的方法可以在QStringList中找到字符串的一部分?我当然可以遍历QStringList并在那里使用contains(),但是有更好的方法吗?

1 个答案:

答案 0 :(得分:2)

您可以使用QStringList::filter()功能:

  

QStringList QStringList :: filter(const QString&amp; str,   Qt :: CaseSensitivity cs = Qt :: CaseSensitive)const

     

返回包含子字符串str。

的所有字符串的列表

并检查返回的列表是否为空。

在你的情况下:

QStringList s;
s << "long word";
s << "longer word";
s.filter("long"); // returns "long word", and also "longer word" since "longer" contains "long"