C++;QT从QString获取部分
我有自定义的(动态QString),比如像这样的123+555,我需要在+之后得到它。也可以有不同的东西,然后+(/,*,-等等)。我的问题是如何在一些字符之后获取字符串的一部分。使用函数,它允许您指定分隔符并返回元素列表C++;QT从QString获取部分,qt,qstring,qtgui,Qt,Qstring,Qtgui,我有自定义的(动态QString),比如像这样的123+555,我需要在+之后得到它。也可以有不同的东西,然后+(/,*,-等等)。我的问题是如何在一些字符之后获取字符串的一部分。使用函数,它允许您指定分隔符并返回元素列表 QString string("123+555"); QStringList listItems = string.split('+', QString::SkipEmptyParts); QString finalString = listItems[1]; 或者,您可以
QString string("123+555");
QStringList listItems = string.split('+', QString::SkipEmptyParts);
QString finalString = listItems[1];
或者,您可以选择分隔字符的位置,并将其与对的调用一起使用,因为您使用的是Qt,您可以尝试以下类: 使用这样的类,您可以编写如下代码:
// 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"
// ...
}
这样,您就不必编写代码来检查哪些字符(运算符)“+,-,*,/”存在,然后根据找到的字符对字符串执行拆分。您能给我更多的信息吗,我不知道如何只获取一部分,拆分后,这里有一个列表,您将有一个包含2项的列表[123555]。最后一行引用列表中的第二项,即“+”之后的字符串,非常感谢,先生。在这种情况下,QString::split可以正常工作。如果您需要更多的控制,请查看QRegularExpression。