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.csdn.net/download/qq_45646951/15038828