文章目录
- a) enum Qt::CaseSensitivity 大小写敏感
- 一、合并
- 二、替换:replace(有多个重载)
- 1.其他重载:(个人认为常用的)
- 三、分割/截取:
- 1.split(有多个重载)
- enum QString::SplitBehavior
- 2.section 分割(有多个重载)
- 3.向左、向右、中间截取
- 3. 1 向左截取 left():
- 3. 2 向右截取 right():
- 3. 3 中间截取 mid()
- 四、比较:compare(有多个重载)
- 1.静态函数:(列举一个)
- 2.普通成员函数:(列举一个)
- 五、去空白:
- 1.simplified() (去除两边,将内部空白替换成空格)
- 2.trimmed() (去除两边)
- 3.使用正则表达式(完全去除)
- 4.for循环去除(完全去除)
- 六、其他
- 1.转小写 toLower()
- 2.转大写 toUpper()
- 3.字符串是否为空 isEmpty()
- 4.字符串是否为空 isNull()
- 5.填充字符(填满):
- 6.是否包含该字符串(有多个重载)
- 7.是否以该字符串结尾(有多个重载)
- 8.是否以该字符串开头(有多个重载)
- 9.QFontMetrics类:字体度量信息
- 9.1构造函数:列举一个
- 9.2 获取字符串绘制矩形
字符串常用的功能,合并、替换、分割、比较、去空白等。
重载运算符“ + ” 和 “ += ” 都可以实现字符串的合并。
例子:
QString & QString::replace(int position, int n, const QString & after)
例子:
QString & QString::replace(const QString & before, const QString & after, Qt::CaseSensitivity cs = Qt::CaseSensitive)
若字符串中包含before字符串,那么将使用after字符串将其替换,第三个参数设置是否大小写敏感,默认大小写敏感
QStringList QString::split(const QString & sep, SplitBehavior behavior = KeepEmptyParts, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
- 第一个参数是分隔符(以什么分割),第二个参数默认支持结果出现空条目(空格不算空条目),第三个参数是匹配大小写敏感,默认大小写敏感。
- 注意:当分隔符没有与之相匹配的时候,会将字符串作为QStringList的一个数组数据即QStringList[0]
enum QString::SplitBehavior
例子:
QString QString::section(QChar sep, int start, int end = -1, SectionFlags flags = SectionDefault) const
sep为分隔符,start是开始位置,end是结束位置(默认值时后面所有都匹配),flags影响函数行为的某些方面,例如是否区分大小写、是否跳过空字段以及如何处理开头和结尾分隔符
例子:
3. 1 向左截取 left():
QString QString::left(int n) const
在最左边开始截取n个字符,组成字符串返回。如果n小于0或者大于size()将返回整个字符串,等于0的时候为空。
例子:
3. 2 向右截取 right():
QString QString::right(int n) const
从右边往左截取n个字符,组成字符串返回。如果n小于0或者大于size()将返回整个字符串,等于0的时候为空。
例子:
3. 3 中间截取 mid()
QString QString::mid(int position, int n = -1) const
从position的位置开始,截取n个字符,若n为默认值获取,position后面全部内容(包括position)
例子:
int QString::compare(const QString & s1, const QString & s2, Qt::CaseSensitivity cs = Qt::CaseSensitive) [static]
比较s1和s2,s1 < s2:返回一个小于零的整数;s1 > s2:返回一个大于零的整数;s1 == s2:返回一个0。
例子:
int QString::compare(const QString & other, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
例子:
当然也可以直接使用 “ == ” 来进行比较
例子:
去空白我整理了一下,一共有两个QT函数,一种使用正则表达式,一种自己写一个for循环进行去除空白。
QString QString::simplified() const
去除字符串前后空白(源数据不受影响):内部的将内部空白替换成空格
例子:
QString QString::trimmed() const
去除字符串前后空白(源数据不受影响):保留内部空白
例子:
这里使用到了QString的remove方法,remove方法有多个重载哦,这次用的是下方这个
QString & QString::remove(const QRegExp & rx)
将正则表达式匹配到的进行删除
例子:
在这里用到了QString的remove方法,上面已经用到一个,这次用的是另一个重载函数
QString & QString::remove(int position, int n)
根据下标进行删除,n为删除个数,下标从0开始
在for循环里面还使用了另一个方法QChar::isSpace(),这个方法不属于QString,他是属于QChar的。
bool QChar::isSpace() const
例子:
可以自己调试一下感受一下他们之间的关系哦。
QString QString::toLower() const
将字符串全部转成小写形式
例子:
QString QString::toUpper() const
转成大写形式
例子:
bool QString::isEmpty() const
当字符串为空返回true,否则返回false。”” 空字符串也算true
例子:
bool QString::isNull() const
当字符串为空返回true,否则返回false。
例子:
QString & QString::fill(QChar ch, int size = -1)
将字符串中的每个字符设置为字符ch。如果size不为-1(默认值),则预先将字符串调整为size大小,再进行填充。
例子:
bool QString::contains(const QString & str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
例子:
bool QString::endsWith(const QString & s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
例子:
bool QString::startsWith(const QString & s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
如果遇到其他好用的函数也会加进来的呀,里面有一个不属于QString的函数。
QFontMetrics类:QFontMetrics类提供字体度量信息,字符串的物理宽度(显示宽度)等信息。
9.1构造函数:列举一个
QFontMetrics(const QFont &font)
为一个字体构造度量
9.2 获取字符串绘制矩形
QRect boundingRect(QChar ch) const
返回一个矩形,获取字符串绘制矩形

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/197350.html