我有自定义(动态QString),例如像这样的123 + 555,我需要在+之后得到这个。还有可能有不同的东西+(/,*, - 等)。我的问题是如何在一些字符之后获取字符串的一部分。
答案 0 :(得分:2)
使用split功能,该功能允许您指定分隔符并返回元素列表。
QString string("123+555");
QStringList listItems = string.split('+', QString::SkipEmptyParts);
QString finalString = listItems[1];
或者,您可以find by index分隔字符位置,并通过调用right
来使用它答案 1 :(得分:0)
由于你使用Qt,你可以尝试上课:QRegExp。
使用这样的类,您可以编写如下代码:
// This code was not tested.
QRegExp rx("(\\d+)(\\+|\\-|\\*|/)(\\d+)"); // Be aware, I recommend you to read the link above in order to see how construct the proper regular expression.
int pos = rx.indexIn("23+344");
if (pos > -1) {
QString number_1 = rx.cap(1); // "23"
QString op = rx.cap(2); // "+"
QString number_2 = rx.cap(3); // "344"
// ...
}
这样您就不必编写代码来检查哪些字符(运算符)" +, - ,*,/"然后存在,然后根据找到的字符对字符串执行拆分。