在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(),但是有更好的方法吗?
答案 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"