qt QString的Split方法(字符串被某个字符拆分成集合)

字符串被某个字符拆分成集合

今天想在数据库存储一组数据,因为数组的长度不是固定的,所以想存的时候是否可以存字符串,然后用固定的“,”隔开存储,取值的时候再使用split(",")取值,尝试后可取,代码如下:

void MainWindow::strSplit()
{
    QString str = "0,1,2,3,4,5,6,7,8,9";
    QStringList  strs=  str.split(",");
    foreach (QString s, strs) 
    {
       int n =  s.toFloat();
       qDebug() << n;
    }
}

按F1后查看帮助:

Splits the string into substrings wherever sep occurs, and returns the list of those strings. If sep does not match anywhere in the string, split() returns a single-element list containing this string.
cs specifies whether sep should be matched case sensitively or case insensitively.
If behavior is QString::SkipEmptyParts, empty entries don't appear in the result. By default, empty entries are kept.
Example:

  QString str = "a,,b,c";

  QStringList list1 = str.split(',');
  // list1: [ "a", "", "b", "c" ]

  QStringList list2 = str.split(',', QString::SkipEmptyParts);
  // list2: [ "a", "b", "c" ]

See also QStringList::join() and section().

拆分为集合后 重新赋值

界面

在这里插入图片描述

.h文件

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();
    float f[5];

    virtual void showEvent(QShowEvent *event);          //界面展示
    void str2Flot(float *fi,QString strs , int len);    //字符串给数组赋值
    void initF();                                       //数组的初始化
    void showF();                                       //数组的展示



private slots:
    void on_pushButton_clicked();                       //按钮单机槽函数

.cpp文件

/**
 * @brief MainWindow::showEvent
 * @param event
 * 界面展示事件
 */
void MainWindow::showEvent(QShowEvent *event)
{
    initF();        //初始化数组元素
    showF();        //在界面展示数组元素
}

/**
 * @brief MainWindow::str2Flot
 * @param f
 * @param strs
 * @param len
 * 字符串 用,拆分快
 */
void MainWindow::str2Flot(float *fi, QString strs, int len)
{
    QStringList strl;
    QString s;
    float value;

    strl = strs.split(",");     //拆分

    for(int i = 0;i<len;i++)
    {
        s = strl.at(i);         //获取字符串集合的元素
        value = s.toFloat();    //转为float类型
        fi[i] = value;           //数组重新赋值
    }
}

/**
 * @brief MainWindow::initF
 * 初始化数组
 */
void MainWindow::initF()
{
    for(int i = 0;i<5;i++)
    {
        f[i] = i*2.2;
    }
}

/**
 * @brief MainWindow::showF
 * 展示数组内的元素
 */
void MainWindow::showF()
{
    QString s;
    for(int i = 0;i<5;i++)
    {
        s += QString::number(f[i])+" "; //字符串累加用,隔开
    }
    s = s.left(s.size() - 1);           //去掉最后一个 ' '
    ui->lineEdit_2->setText(s);         //展示在界面
}

/**
 * @brief MainWindow::on_pushButton_clicked
 * 单机按钮 数据转换
 */
void MainWindow::on_pushButton_clicked()
{
    QString str;

    str = ui->lineEdit_1->text();   //获取字符串

    str2Flot(f,str,5);              //修改数组元素
    showF();                        //重新展示
}

效果

在这里插入图片描述
源码路径:https://download.youkuaiyun.com/download/qq_45646951/15038828

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

光顶术士

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值