一、QT中字符串类
1.QT中常见的字符串类包括以下几种:
(1)QString类:Qt中最常见的字符串类,用于存储Unicode字符。它支持各种字符操作,例如连接、替换、截取等等。
(2)QByteArray类:用于存储字节序列,适用于处理非Unicode数据,例如二进制数据或是通过网络协议传输的数据。
(3)QChar类:用于表示一个Unicode字符,可以操作单个字符。
(4)QLatin1String类:用于表示Latin-1编码的字符串。
(5)QStringList类:用于存储一组字符串。
2.关于字符串的各种操作
//字符串连接
QString str1 = "hello";
QString str2 = "ikun";
QString str3 = str1 + " " + str2; //"hello ikun"
//字符串截取
QString str4 = "hello ikun";
QString str5 = str4.mid(6,4); //"ikun"
//字符串位置查找
int str6 = str4.indexOf("ikun"); //6
//字符串替换
QString str7 = "aiyou ni gan ma";
str7.replace("aiyou","gege"); //"gege ni gan ma"
//字符串拆分
QString str8 = "ji ni tai mei";
QStringList list = str8.split(" "); //["ji","ni","tai","mei"]
//字符串大小写转换
QString str9 = "shi bu shi you bing";
QString str10 = str9.toUpper(); //"SHI BU SHI YOU BING"
QString str11 = str10.toLower(); //"shi bu shi you bing"
//字符串格式化
QString str12 = "dan sheng yu %1,meng xiang zuo %2";
QString str13 = str12.arg(1996).arg("shuo chang ling xiu");
//"dan sheng yu 1996,meng xiang zuo shuo chang ling xiu"
二、QT中常见容器
Qt中提供了很多容器,便于存储和操作数据,常见容器有以下几种:
(1)QList:用于存储和操作动态大小的元素列表。
(2)QVector:和QList类似,但在随机访问元素时更高效。
(3)QLinkedList:用于存储和操作双向链表中的元素。
(4)QSet:用于存储和操作无重复元素的集合。
(5)QMap:用于存储和操作键值对的映射。
(6)QHash:和QMap类似,但是不保证元素的顺序。
(7)QVariant类:QT中用于在不同数据类型之间进行转换的通用类。它可以在不知道具体数据类型的情况下存储和操作数据。QVariant类可以存储各种不同的数据类型,包括基本数据类型(整数、浮点数、布尔值等)、QString、QDate、QTime、QDateTime、QUrl等。它还可以存储用户自定义的数据类型,只要该数据类型提供了相应的类型转换函数。
三、遍历容器
例如QList类型
QList<QString> list;
list.append("cai xun kun");
list.append("wang zi yi");
list.append("wan yan hui de");
qDebug()<<"第一种遍历方式";
for(int i = 0; i < list.size(); i++)
{
qDebug()<<list.at(i);
}
qDebug()<<"第二种遍历方式";
for(auto p = list.begin(); p != list.end(); p++)
{
qDebug()<< *p;
}
qDebug()<<"第三种遍历方式";
QList<QString>::iterator iter;
for(iter = list.begin(); iter != list.end(); iter++)
{
qDebug()<< *iter;
}
/*第一种遍历方式
"cai xun kun"
"wang zi yi"
"wan yan hui de"
第二种遍历方式
"cai xun kun"
"wang zi yi"
"wan yan hui de"
第三种遍历方式
"cai xun kun"
"wang zi yi"
"wan yan hui de"*/