概述
一、Qt 字符串
Qt字符串类——1.字符串常用的几种操作_小白白的博客-CSDN博客
1.1 +=操作
(1) “+=”操作符用于将一个字符串追加到另一个字符串的末尾;
(2) QString::append()函数具有与“+=”操作符同样的功能,实现在一个字符串的末尾追加另一个字符串
(3) 组合字符串的另一个函数是QString::sprintf(),此函数支持的格式定义符和C++库中的函数sprintf()定义的一样
QString str;
str.sprintf("%s"," Welcome "); //str="Welcome "
str.sprintf("%s"," to you! "); //str="to you! "
str.sprintf("%s %s"," Welcome ", "to you! "); //str=" Welcome to you! "
(4)Qt还提供了另一种方便的字符串组合方式,使用QString::arg()函数,此函数的重载可以处理很多的数据类型。此外,一些重载具有额外的参数对字段的宽度、数字基数或者浮点数精度进行控制。通常,相对于函数QString::sprintf(),函数QString::arg()是一个比较好的解决方案,因为它类型安全,完全支持Unicode,并且允许改变"%n"参数的顺序。
QString str;
str=QString("%1 was born in %2.").arg("John").arg(1982);//str="John was born in 1982."
5)QString也提供了一些其他组合字符串的方法,包括如下几种。
- ① insert()函数:在原字符串特定的位置插入另一个字符串;
- ② prepend()函数:在原字符串的开头插入另一个字符串;
- ③ replace()函数:用指定的字符串代替原字符串中的某些字符
(6)很多时候去掉一个字符串两端的空白(空白字符包括回车字符“n”、换行字符“r”、制表符“t”和空格字符“ ”等)非常有用,如获取用户输入的账号时。
- ① QString::trimmed()函数:移除字符串两端的空白字符;
-
② QString::simplified()函数:移除字符串两端的空白字符,使用单个空格字符“ ”代替字符串中出现的空白字符。
例如:QString str=" Welcome t to n you! ";
str=str.trimmed(); //str=" Welcome t to n you! "
1.2 查询字符串数据
QT自学过程记录(6-2):QT5字符串类 - 查询字符串数据_FightingBoom的博客-CSDN博客
(1)判断一个字符是否以某个字符串开头 QString::startsWith()
QString str = "Welcome to you!";
str.startsWith("Welcome", Qt::CaseSensitive); // 返回true
str.startsWith("you", Qt::CaseSensitive); // 返回false
(2)判断一个字符是否以某个字符串结尾 QString::endsWith()
(3)判断一个字符是否出现过 QString::contains()
(4)比较两个字符串
operator < (const QString&):比较一个字符串是否小于另一个字符串,如果是,则返回true。
operator <= (const QString&):比较一个字符串是否小于等于另一个字符串,如果是,则返回true;
operator == (const QString&):比较两个字符串是否相等,如果相等,则返回true;
operator > = (const QString&):比较一个字符串是否大于等于另一个字符串,如果是,则返回true;
localeAwareCompare(const QString&, const QString&):静态函数,比较前后两个字符串,如果小于则返回负整数值;如果等于则返回0;如果大于则返回正整数值。
compare(const QString&, const QString&, Qt::CaseSensitivity):该函数可以指定是否进行大小写的比较,而大小写的比较是完全基于字符Unicode编码值的,而且是非常快的,返回值类似于localeAwareCompare()函数。
1.3 字符串的转换
(1)将字符串转换为整型
(2)进制转换
1.4 其他数据类型
1.4.1 QDate
1.4.2 QTime
二、容器类
2.1 QList
QList是目前最常用的容器类,它存储了给定类型的值的一个列表,而这些值可以通过索引访问。QList使用数组来实现,以确保进行快速的基于索引的访问。
2.2 QLinkedList
链式列表,非连续的内存块保存数据。不能使用下标,只能使用迭代器访问它的数据
2.3 QVector
可下标可迭代器。
2.4 QMap
键值映射关系
2.5 QHash
哈希表
三、QVariant类
QVariant这个类很神奇,或者说方便。很多时候,需要几种不同的数据类型需要传递,如果用结构体,又不大方便,容器保存的也只是一种数据类型,而QVariant则可以统统搞定。
QVariant 这个类型充当着最常见的数据类型的联合。QVariant 可以保存很多Qt的数据类型,包括QBrush、QColor、QCursor、QDateTime、QFont、QKeySequence、 QPalette、QPen、QPixmap、QPoint、QRect、QRegion、QSize和QString,并且还有C++基本类型,如 int、float等。
当然,如果支持的类型没有想要的,没关系,QVariant也可以支持自定义的数据类型。被QVariant存储的数据类型需要有一个默认的构造函数和一个拷贝构造函数。为了实现这个功能,首先必须使用Q_DECLARE_METATYPE()宏。通常会将这个宏放在类的声明所在头文件的下面
最后
以上就是顺利彩虹为你收集整理的Qt 字符串类及容器类和QVariant类一、Qt 字符串二、容器类三、QVariant类的全部内容,希望文章能够帮你解决Qt 字符串类及容器类和QVariant类一、Qt 字符串二、容器类三、QVariant类所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复