Qt QString lastIndexOf 不工作
Qt QString lastIndexOf not working
我正在使用 Qt5.6,我正在尝试使用 QString 函数 lastIndexOf。主题数据包含如下内容:
156 + (28 * 4) + (14 * 9 * 2)
使用 indexOf:
int intOpB = strLocalCopy.indexOf(ucOpenBracket);
strLocalCopy 包含主题数据,ucOpenBracket 包含'('。
intOpB 正确返回,为 6。
然后我查找最后一次出现的“)”:
int intClB = strLocalCopy.lastIndexOf(ucCloseBracket, (++intOpB));
使用 intOpB 作为参考,但 lastIndexOf 总是返回 -1 到 intClB,为什么?
我正在使用调试器进行单步执行,这样我就可以验证所有变量是否包含它们应该包含的内容。
如果我删除第二个参数它可以工作,但我不明白为什么它不能与提供的参数一起工作。
int QString::lastIndexOf(const QString &str, int from = -1,
Qt::CaseSensitivity cs = Qt::CaseSensitive) const
Returns the index position of the last occurrence of the string str in
this string, searching backward from index position from. If from is
-1 (default), the search starts at the last character; if from is -2, at the next to last character and so on. Returns -1 if str is not
found.
If cs is Qt::CaseSensitive (default), the search is case sensitive;
otherwise the search is case insensitive.
因此搜索从位置 7 开始,向后搜索最后一次出现的 ')',此时在 QString
的位置 0-7 之间有 none
我正在使用 Qt5.6,我正在尝试使用 QString 函数 lastIndexOf。主题数据包含如下内容:
156 + (28 * 4) + (14 * 9 * 2)
使用 indexOf:
int intOpB = strLocalCopy.indexOf(ucOpenBracket);
strLocalCopy 包含主题数据,ucOpenBracket 包含'('。
intOpB 正确返回,为 6。
然后我查找最后一次出现的“)”:
int intClB = strLocalCopy.lastIndexOf(ucCloseBracket, (++intOpB));
使用 intOpB 作为参考,但 lastIndexOf 总是返回 -1 到 intClB,为什么?
我正在使用调试器进行单步执行,这样我就可以验证所有变量是否包含它们应该包含的内容。
如果我删除第二个参数它可以工作,但我不明白为什么它不能与提供的参数一起工作。
int QString::lastIndexOf(const QString &str, int from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
Returns the index position of the last occurrence of the string str in this string, searching backward from index position from. If from is -1 (default), the search starts at the last character; if from is -2, at the next to last character and so on. Returns -1 if str is not found.
If cs is Qt::CaseSensitive (default), the search is case sensitive; otherwise the search is case insensitive.
因此搜索从位置 7 开始,向后搜索最后一次出现的 ')',此时在 QString
的位置 0-7 之间有 none