QString str = “1.1,2.2,3.3,4.4,5.5,6.6,6.6”; 在qt中读取str中的字符串,然后转换成容器,如何实现?
时间: 2024-11-28 10:27:13 浏览: 12
Qt中整形数组转换成字符串的问题.pdf
在Qt中,你可以使用QStringList来处理包含逗号分隔值的字符串,如"1.1,2.2,3.3,4.4,5.5,6.6,6.6"。首先,你需要将字符串分割成一个个单独的元素,然后把这些元素添加到QList或 QVector等容器中。这里是一个简单的示例:
```cpp
#include <QObject>
#include <QString>
#include <QStringList>
#include <QVector>
class MyClass : public QObject
{
public:
QVector<double> parseString(QString str) {
QStringList parts = str.split(",");
QVector<double> values;
foreach (QString part, parts) {
double value = QDoubleValidator().toDouble(part);
if (!value.isInvalid()) {
values.append(value);
} else {
qWarning() << "Invalid number found: " << part;
}
}
return values;
}
};
// 使用示例
MyClass myInstance;
QString str = "1.1,2.2,3.3,4.4,5.5,6.6,6.6";
QVector<double> parsedValues = myInstance.parseString(str);
```
在这个例子中,`parseString`函数会创建一个QStringList来分割输入字符串,然后遍历每个部分,尝试将其转换为double。如果转换成功,它会被添加到返回的QVector中;如果转换失败(例如,如果包含非数字字符),则会捕获异常并打印警告。
阅读全文