QString较少用到的接口

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

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

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

1
QString QString::trimmed() const

  示例:

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

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

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

0x02 QString转QStringList

1
2
3
QStringList QString::split(const QString &sep, 
QString::SplitBehavior behavior = KeepEmptyParts,
Qt::CaseSensitivity cs = Qt::CaseSensitive) const
1
2
3
4
5
6
7
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可以使用以下接口:

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

0x03 截取指定位置内容

1
void QString::truncate(int position)

  示例:

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

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

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