qt5基础2

来源:互联网 发布:软件研发主管岗位职责 编辑:程序博客网 时间:2024/06/05 03:14

(1)字符串类
QString类保存16位Unicode值,提供丰富的操作、查询和转换等函数,还进行使用隐式共享,高效的内存分配策略。

操作字符串:
1、二元操作“+”;
2、QString::append()
3、QString::springf()
例 QString str;
str.sprintf(“%s”,”welcome”);
str.sprintf(“%s”,“to you!”);
str.sprintf(“%s %s”,”welcome “,”to you!”);
4、函数QString::arg()
QString str
str=QString(“%1 was born int %2.”).arg(“John”).arg(1982))’
5、QString还提供其他组合字符串的方法
1、insert()函数:2、prepend()函数;3、replace()函数;

6、去掉一个字符串两端的空白,如获取用户输入的账号时
1、QString::trimmed()函数.移除字符串两端的空白字符
2、QString::simplified()函数。移除字符串两端的空白字符,使用单个空格字符“”

查询字符串数据
(1)QString::startsWith()判断一个字符串是否以某个字符串开头
(2)QString::endsWith()判断字符串是否以某个字符串结尾
(3)QString::contains()判断一个指定的字符串是否出现过
QString str=“Welcome to you”
str.contains(“welcome”,Qt::CaseSensitive);//返回true
(4)比较两个字符串也是常用的功能,QString提供了多种比较手段.
operator<(>=)(const QString&);
(5)localeAwareCompare(const QString&,const QString&):静态函数,比较前后的字符串
(6)compare(const QString&,const QString&,Qt::CaseSensitivity) 该编码可以指定是否进行写的比较

字符串转换
(1)QString::toInt()函数将字符串转换为整型数值,类似的函数还有toDouble()、toFloat()、toLonge()、toLongeLong()等
QString str=”125”
bool ok;
int hex=str.toInt(&ok,16);将字符串转换为整型数值。ok=true hex=293;

(2)Qstring提供的字符编码集转换函数将会返回一个const char*类型的QByteArray类,具有一个字节数组,可以存储原始字节,也可以存储传统的以”\o”结尾的8位字符串。转换函数有:
toAscii():返回一个ASCII编码的8位字符串;
toLatin1():返回一个Latin-1(IOS8859-1)编码的8位字符串
toUtf8():返回一个UTF-8编码的8位字符串()UTF-8是ASCII的升级,支持挣个unicode字符集。
toLocal8bBit():返回一个系统本地(locale)编码的8位字符串

QString str=“welcome to you!”;QByteArray ba=str.toAscii();qDebug()<<ba;ba.append("HELLO WORLD!");qDebug()<<ba.data();//输出最后结果

NULL和空字符串(empty),一个NULL是一个空字符串,而一个空字符串不一定是一个NULL字符串;

容器类:
嵌套 QHash<QString ,QList<double> >//此处加空格
QHash的键类型是Qstring,它的值类型是QList。

QList,派生类有QItemSelection、QQueue、QStringList和QTestEventList。提供追加QList::append()和QList::prepend()函数。
QLinkedList是一个链式列表,以非连续的内存保存数据。
QLinkedList不能使用下标,只能使用迭代器访问它的数据项。对很大列表进行插入操作时,比Qlist具有更高的效率
QVector。可以用下标,也可以用迭代器访问。子类有QPolygon、QPolygonF和QStack。

原创粉丝点击