阅读量:8
在Qt中,您可以使用QRegExp、QStringList或QString的一些内置方法来获取字符串中的数值。
- 使用QRegExp:
QString text = "Hello123World456"; QRegExp regex("\\d+"); // 匹配一个或多个数字 int pos = 0; while ((pos = regex.indexIn(text, pos)) != -1) { QString number = regex.cap(0); // 获取匹配到的数字 // 处理数字 qDebug() << number; pos += regex.matchedLength(); }
- 使用QStringList:
QString text = "Hello 123 World 456"; QStringList list = text.split(QRegExp("\\D+")); // 使用非数字字符分割字符串 foreach (const QString &number, list) { if (!number.isEmpty()) { // 处理数字 qDebug() << number; } }
- 使用QString的toInt()或toDouble()方法:
QString text = "Hello 123 World 456"; QString number; int pos = 0; while (pos < text.length()) { if (text[pos].isDigit()) { // 找到数字的起始位置 int startPos = pos; while (pos < text.length() && text[pos].isDigit()) { pos++; } number = text.mid(startPos, pos - startPos); // 截取数字 // 处理数字 qDebug() << number; } pos++; }
请根据您的实际需求选择适合您的方法。