Qt拆分Q字符串
Qt Split QString
假设我有一个如下的QString:
[General]
APPLICATION_NAME=skype
Pickup_key=222
Hangup_shift=55
Hangup_key=223
Reject_key=556
Pickup_ctrl=1
如何获取Pickup_key中的ONLY 222并将其存储到int中?每次运行程序时,整数值都会动态变化,因此我需要读取"Pickup_key="后面的数字。顺便说一句,我正在把QFile
读成QString
,这就是为什么它的形状是这样的。
您可以编写以下类来读取和处理字符串(实际上它看起来像ini格式):
class IniReader
{
public:
IniReader(const QString &input)
{
// Split by n first.
QStringList lines = input.split('n');
foreach (const QString &line, lines) {
// Split line by '='.
QStringList tokens = line.split('=', QString::SkipEmptyParts);
if (tokens.size() == 2) {
m_data.insert(tokens.at(0), tokens.at(1));
}
}
}
QVariant data(const QString &key) const {
return m_data.value(key);
}
private:
QMap<QString, QVariant> m_data;
};
以下是如何使用它:
IniReader reader("[General]n"
"APPLICATION_NAME=skypen"
"Pickup_key=222n"
"Hangup_shift=55n"
"Hangup_key=223n"
"Reject_key=556n"
"Pickup_ctrl=1");
int Pickup_key = reader.data("Pickup_key").toInt();
而且,正如其他人已经建议的那样,您可以使用QSettings
来读取和处理文件的数据。这里有一个例子:
QSettings settings("test.ini", QSettings::IniFormat);
int Pickup_key2 = settings.value("Pickup_key").toInt();
其中test.ini文件包含您的示例字符串。
相关文章:
- 将字符串拆分为标记,并将标记拆分为两个单独的数组
- 将字符串拆分为等长 c++ 的部分
- 如何使用 Boost C++ 打印第 n 个字符串拆分?
- 我在将字符串拆分为向量时遇到困难
- C++ 如何将字符串拆分为单个字符
- 是否有用于执行反向字符串拆分器的开箱即用功能?
- 如何将字符串拆分为一组 3 个字符,它们之间有空格
- 将字符串拆分为单个单词并将它们放置在向量中
- 基于其中的数字子字符串拆分字符串
- 如何在C++中将数字字符串拆分为数组
- 如何在 c++ 中将字符串拆分为字符串 2d 数组数组
- 如何将标准::字符串拆分为标准::string_views的范围 (v3)
- 将特定格式的字符串拆分为浮点数和字符串
- 在 c++ 中将字符串拆分为单独的变量
- 用C 中的4个字符将字符串拆分
- 如何用Arduino中的另一个字符串将字符串拆分
- 如何在 Main 方法之外将字符串拆分为标记
- C 将字符串按空白空间将字符串拆分,除非将其封闭在引号中并存储在向量中
- 将字符串拆分为矢量 C++
- 试图将字符串拆分为两个整数