qt qstring中123456789单独分割出来
时间: 2024-11-28 08:09:28 浏览: 17
Clion调试QTQString看不到值问题处理
在Qt的`QString`中,如果你想将连续的数字序列123456789单独分割出来,可以使用`split()`函数,这个函数可以根据指定的分隔符将字符串分割成多个部分。在这种情况下,由于数字之间没有默认的分隔符,我们可以直接用`QString::number(1)`作为分隔符,因为它会返回一个包含当前数字的空字符串。
然而,这种做法会得到1、12、123...这样的结果,因为每次分割都会增加一位。所以,我们通常不会这样做,而是直接迭代整个字符串,逐位读取。例如:
```cpp
QString str("123456789");
int prevValue = -1; // 初始化前一个值为负数,表示还没有开始一个新的数字
QString currentNumber;
for (int i = 0; i < str.length(); ++i) {
if (isdigit(str[i])) { // 检查字符是否为数字
currentNumber.append(str[i]);
} else if (!currentNumber.isEmpty()) { // 当遇到非数字字符并且有当前数字时,添加到列表
QStringList parts;
parts << currentNumber.toInt(); // 转换为整数并添加到列表
// 这里你可以选择处理parts或者开始新的循环
currentNumber.clear(); // 清除已提取的数字
}
}
// 如果最后还有未处理的数字
if (!currentNumber.isEmpty()) {
QStringList parts;
parts << currentNumber.toInt();
}
// 使用parts列表存储所有的数字
```
阅读全文