C ++ QT从QString

时间:2015-06-09 14:19:30

标签: qt qstring qtgui

我有自定义(动态QString),例如像这样的123 + 555,我需要在+之后得到这个。还有可能有不同的东西+(/,*, - 等)。我的问题是如何在一些字符之后获取字符串的一部分。

2 个答案:

答案 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"
    // ...
}

这样您就不必编写代码来检查哪些字符(运算符)" +, - ,*,/"然后存在,然后根据找到的字符对字符串执行拆分。