介绍QString较少使用却很有用的接口。

0x00 移除行首行尾的空白字符

  空白字符包含:'t', 'n', 'v', 'f', 'r'和' '。
  接口:

QString QString::trimmed() const

  示例:

QString str = "  lots\t of\nwhitespace\r\n ";
str = str.trimmed();
// str == "lots\t of\nwhitespace"

0x01 移除行首行尾空白字符并将每个内部空白序列替换为一个空格。

QString str = "  lots\t of\nwhitespace\r\n ";
str = str.simplified();
// str == "lots of whitespace";

0x02 QString转QStringList

QStringList QString::split(const QString &sep, 
                           QString::SplitBehavior behavior = KeepEmptyParts, 
                           Qt::CaseSensitivity cs = Qt::CaseSensitive) const
QString str = "a,,b,c";

QStringList list1 = str.split(',');
// list1: [ "a", "", "b", "c" ]

QStringList list2 = str.split(',', QString::SkipEmptyParts);
// list2: [ "a", "b", "c" ]

  另外QStringList转QString可以使用以下接口:

QString QStringList::join(const QString &separator) const

0x03 截取指定位置内容

void QString::truncate(int position)

  示例:

QString str = "Hello world";
str.truncate(5);
// str == "Hello"

0x04 计算字符串的某个字符个数

int QString::count(QChar ch, 
                   Qt::CaseSensitivity cs = Qt::CaseSensitive) const

Qt君
39 声望22 粉丝

« 上一篇
qmake实用函数