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

QString的Split方法

  • 字符串被某个字符拆分成集合
  • 拆分为集合后 重新赋值
    • 界面
    • .h文件
    • 效果

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

今天想在数据库存储一组数据,因为数组的长度不是固定的,所以想存的时候是否可以存字符串,然后用固定的“,”隔开存储,取值的时候再使用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().

拆分为集合后 重新赋值

界面

qt QString的Split方法(字符串被某个字符拆分成集合)_第1张图片

.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();                        //重新展示
}

效果

qt QString的Split方法(字符串被某个字符拆分成集合)_第2张图片
源码路径:https://download.csdn.net/download/qq_45646951/15038828

你可能感兴趣的:(Qt5,类)