我是靠谱客的博主 顺利彩虹,最近开发中收集的这篇文章主要介绍Qt 字符串类及容器类和QVariant类一、Qt 字符串二、容器类三、QVariant类,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

一、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类所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(66)

评论列表共有 0 条评论

立即
投稿
返回
顶部