Qt的section函式介紹
阿新 • • 發佈:2021-02-06
section釋義:部分
因此我們可以知道,Qt中的section函式的功能就是從一段字串中拿出某一段連續的部分。
需要知道的定義:位置的標識
從左到右:0,1,2,3,4,5……
從又到左:-1,-2,-3,-4,-5……
這個位置的標識一定要清楚,而且要清楚的是,這個標識是字串被切分之後的字串們的編號!!!不是某個字元的位置,而是子字串的位置。
如字串為:“aaa/bbb/ccc/ddd/eee/fff”
從左到右的對應編號關係為:
編號 | 值 |
---|---|
0 | aaa |
1 | bbb |
2 | ccc |
3 | ddd |
4 | eee |
5 | fff |
從右到左的對應編號關係為:
編號 | 值 |
---|---|
-1 | fff |
-2 | eee |
- 3 | ddd |
-4 | ccc |
-5 | bbb |
-6 | aaa |
一定要理清楚這個順序關係,這點至關重要!!!
接下來不如正題,就是section函式的使用,這裡面只是簡單介紹一下,section函式原型如下:
QString QString::section(QChar sep, int start, int end = -1, SectionFlags flags = SectionDefault) const
QString QString::section(const QString &sep, int start, int end = -1, SectionFlags flags = SectionDefault) const
QString QString::section(const QRegExp ®, int start, int end = -1, SectionFlags flags = SectionDefault) const
QString QString::section(const QRegularExpression &re, int start, int end = -1, SectionFlags flags = SectionDefault) const
以上是手冊中羅列出來的section函式的四個過載,其實我們可以發現,這四個函式可以抽象為:
接下來詳解這四個引數
- 分隔標準:這是用來將字串切分的依據,可以是字元、字串、正則表示式等;
- 開始子字串編號:決定從哪個子字串開始保留;
- 結束子字串編號:決定到哪個子字串結束;
- 分隔標誌:這個是對於切分出來的字串進行選取的依據(一般情況下,預設的就行)。
其中,這個開始和結束的區間是一個閉區間[start, end],這點牢記!!!
舉個例子,比如說我現在有個字串"/111/222/333/444/555/666/777/888",我想把最後一段子字串捨棄,我們可以採用如下的方式:
QString str("/111/222/333/444/555/666/777/888");
QString str2 = str.section('/', 0, -2);// 切分標準為'/'
qDebug() << str2;
結果如下: