我正在使用Qt5.6,我正在尝试使用QString函数lastIndexOf。主题数据包含以下内容:
156 + (28 * 4) + (14 * 9 * 2)
使用索引:
int intOpB = strLocalCopy.indexOf(ucOpenBracket);
strLocalCopy包含主题数据,ucOpenBracket包含"(".
intOpB返回正确,为6。
然后我查找最后一次出现的")":
int intClB = strLocalCopy.lastIndexOf(ucCloseBracket, (++intOpB));
使用intOpB作为引用,但lastIndexOf总是向intClB返回-1,为什么?
我使用调试器单步执行,这样我就可以验证所有变量都包含它们应该包含的内容。
如果我删除第二个参数,它可以工作,但我不明白为什么它不能与提供的参数一起工作。
来自文档:
int QString::lastIndexOf(const QString&str,int from=-1,Qt::CaseSensitivity cs=Qt:(CaseSensitive)常量
返回中字符串str最后一次出现的索引位置此字符串,从索引位置向后搜索。如果来自-1(默认),搜索从最后一个字符开始;如果from是-2,则在倒数第二个字符处,依此类推。如果str不是,则返回-1建立
如果cs是Qt::CaseSensitive(默认值),则搜索区分大小写;否则,搜索不区分大小写。
因此,搜索从位置7开始,并在BACKWARDS中搜索")"的最后一次出现,此时在QString 上的位置0-7之间没有