【Qt】QString之simplified()小记

本文介绍如何使用Qt处理手工录入的不规范文本数据,通过simplified()和split()函数组合实现对空白符的标准化处理,从而准确提取每行中的数字及标识。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在工程项目开发中,遇到这么个问题:手工计入文件中的数据,每行有三个,前两个是数字,最后一个是标识,现在把这3个数据提取出来。

一提取就出现问题了:由于手工导入,数据间使用空白间隔,有可能是一个空格,有可能多个空格,怎么成功提取了?看Qt文档,终于找到这么个好用的函数。直接给干货吧!

    QString fileName = QFileDialog::getOpenFileName(this,
                                                    tr("打开文件"),
                                                    /*openPath*/".",
                                                    tr("ini文件 (*.ini)"));
    if(!fileName.isEmpty())
    {
        QFile file(fileName);
        if(!file.open(QIODevice::ReadOnly))
        {
            qDebug()<<"open error!";
            return;
        }

        QTextStream txtInput(&file);
        while(!txtInput.atEnd())
        {
            QString lineStr;
            lineStr = txtInput.readLine();
            QStringList str_list = lineStr.simplified().split(" ");
            bool ok;
            double a = str_list.at(0).toDouble(&ok);
            double b = str_list.at(1).toDouble(&ok);
            QString c = str_list.at(2);
            title.append(a);//title、number、myStr是QVector类型,由于后面要用,是在.h文件内声明的
            number.append(b);
            myStr.append(c);
        }
        QFileInfo infomation = QFileInfo(fileName);
        QString name = QString(tr("选取文件是:")) + infomation.fileName();
        ui->fileLabel->setText(name);
        emit sigDataInit();
        file.close();
    }
这里要讲讲simplified()功能,这个函数把一个字符串首尾的空格全部清除,不管首尾是几个空格哦。字符串中间的空格(包括单个空格、多个空格、\t、\n)都统一转化成一个空格,这样就方便提取了,我们再使用split()函数就能很好拆分了。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值