Qt 5.12--QString详解

1 简介

QString类提供Unicode字符串。
QString存储一串16位QChars,其中每个QChar对应一个UTF-16代码单元。 (代码值大于65535的Unicode字符使用代理对,即两个连续的QChars存储。)
Unicode是一个国际标准,支持当今使用的大多数书写系统。它是US-ASCII(ANSI X3.4-1986)和Latin-1(ISO 8859-1)的超集,并且所有US-ASCII / Latin-1字符都位于相同的代码位置。
在后台,QString使用隐式共享(写时复制)来减少内存使用并避免不必要的数据复制。这也有助于减少存储16位字符而不是8位字符的固有开销。
除了QString,Qt还提供了QByteArray类来存储原始字节和传统的以8位’\ 0’终止的字符串。对于大多数目的,QString是您要使用的类。它在整个Qt API中使用,并且Unicode支持确保如果您想在某个时候扩展应用程序市场,则可以轻松地翻译您的应用程序。 QByteArray适用的两种主要情况是:您需要存储原始二进制数据时,以及内存保留至关重要时(例如在嵌入式系统中)。

2 功能分类

2.1 初始化

QString()
QString(const QChar *unicode, int size = -1)
QString(QChar ch)
QString(int size, QChar ch)
QString(QLatin1String str)
QString(const QString &other)
QString(QString &&other)
QString(const char *str)
QString(const QByteArray &ba)
~QString()

2.2 追加

QString &append(const QString &str)
QString &append(const QChar *str, int len)
QString &append(QChar ch)
QString &append(const QStringRef &reference)
QString &append(QLatin1String str)
QString &append(const char *str)
QString &append(const QByteArray &ba)

2.3 组合

QString	arg(const QString &a, int fieldWidth = 0, QChar fillChar = QLatin1Char(' ')) const
QString	arg(qulonglong a, int fieldWidth = 0, int base = 10, QChar fillChar = QLatin1Char(' ')) const
QString	arg(long a, int fieldWidth = 0, int base = 10, QChar fillChar = QLatin1Char(' ')) const
QString	arg(ulong a, int fieldWidth = 0, int base = 10, QChar fillChar = QLatin1Char(' ')) const
QString	arg(int a, int fieldWidth = 0, int base = 10, QChar fillChar = QLatin1Char(' ')) const
QString	arg(uint a, int fieldWidth = 0, int base = 10, QChar fillChar = QLatin1Char(' ')) const
QString	arg(short a, int fieldWidth = 0, int base = 10, QChar fillChar = QLatin1Char(' ')) const
QString	arg(ushort a, int fieldWidth = 0, int base = 10, QChar fillChar = QLatin1Char(' ')) const
QString	arg(double a, int fieldWidth = 0, char format = 'g', int precision = -1, QChar fillChar = QLatin1Char(' ')) const
QString	arg(char a, int fieldWidth = 0, QChar fillChar = QLatin1Char(' ')) const
QString	arg(QChar a, int fieldWidth = 0, QChar fillChar = QLatin1Char(' ')) const
QString	arg(qlonglong a, int fieldWidth = 0, int base = 10, QChar fillChar = QLatin1Char(' ')) const
QString	arg(QStringView a, int fieldWidth = 0, QChar fillChar = QLatin1Char(' ')) const
QString	arg(QLatin1String a, int fieldWidth = 0, QChar fillChar = QLatin1Char(' ')) const
QString	arg(const QString &a1, const QString &a2) const
QString	arg(const QString &a1, const QString &a2, const QString &a3) const
QString	arg(const QString &a1, const QString &a2, const QString &a3, const QString &a4) const
QString	arg(const QString &a1, const QString &a2, const QString &a3, const QString &a4, const QString &a5) const
QString	arg(const QString &a1, const QString &a2, const QString &a3, const QString &a4, const QString &a5, const QString &a6) const
QString	arg(const QString &a1, const QString &a2, const QString &a3, const QString &a4, const QString &a5, const QString &a6, const QString &a7) const
QString	arg(const QString &a1, const QString &a2, const QString &a3, const QString &a4, const QString &a5, const QString &a6, const QString &a7, const QString &a8) const
QString	arg(const QString &a1, const QString &a2, const QString &a3, const QString &a4, const QString &a5, const QString &a6, const QString &a7, const QString &a8, const QString &a9) const

2.4 position相关的

const QChar at(int position) const

2.5

3 注

3.1 empty 与 null

QString().isEmpty();			// returns true
QString("").isEmpty();          // returns true
QString("x").isEmpty();        // returns false
QString("abc").isEmpty();	// returns false
QString().isNull(); 				// returns true
QString("").isNull();				// returns false
QString("abc").isNull();		// returns false

4 用例

4.1 去除空格

  • 去除字符串前面空格
QString str = "   worthsen   ";
str.remove(QRegExp("^ +\\s*"));		
-> str = "worthsen   ";
  • 去除字符串后面空格
QString str = "   worthsen   ";
str.remove(QRegExp("\\s* +$"));		
-> str = "   worthsen";
  • 去除字符串中首尾空格,其余连续空格变为1个
    ‘\t’, ‘\n’, ‘\v’, ‘\f’, ‘\r’, ’ ’ 都属于空白的处理范围。
QString str = "   worth \t sen   ";
str = str.simplified();
-> str = "worth sen";
  • 去除字符串中首尾空格
QString str = "   worth \t sen   ";
str = str.trimmed();
-> str = "worth \t sen";
  • 去除所有空格
QString str = "   worth  sen   ";
str = str.remove(QRegExp("\\s"));
-> str = "worthsen";

参考

1、Qt 5.12
2、Qt之QString字符串类的详细介绍及功能函数示例用法
3、QT QString中去除空格的
4、QT QString类及常用函数功能详解

©️2020 CSDN 皮肤主题: 技术黑板 设计师:CSDN官方博客 返回首页