目錄數組
引言:如下內容爲網上整理,若有侵權還請告知!!app
QString 類是 Qt 中用於表示字符串的類,實如今 QtCore 共享庫中。QString 類在實現上有如下特徵。函數
Qstring(); // 構造空字符串 QString(QChar ch); // 由 QChar 對象 ch構造 QString(const QChar *pch, int size); // 由 QChar 數組pch構造,size 是數組大小 QString(const QString &obj); // 拷貝構造函數 QString(const char *str); // 由字符串 str 構造,str是一個普通字符串
bool isEmpty() const; // 判斷是否爲空字符串
//注意: 當字符串以 0x開頭時,轉換的基自動轉換爲16, 當字符串以0開頭時,轉換的基自動爲8。 double toDouble(bool *ok = 0) const; // 轉換爲高精度浮點數 float toFloat(bool *ok = 0) cosnt; // 轉換爲浮點數 int toInt(bool *ok, int base = 10) const; // 轉換爲整型數 long toLong(bool *ok, int base = 10) cosnt; // 轉換爲長整型 short toShort(bool *ok, int base = 10) const; // 轉換爲短整型 uint toUInt(bool *ok = 0; int base = 10) const // 轉換爲無符號整型數 ulong toLong(bool *ok = 0, int base = 10) const; // 轉換爲無符號長整型數 ushort toUShort(bool *ok = 0, int base = 10) const; // 轉換爲無符號短整型數
QString &setNum(int n, int base = 10); // 整型數 QString &setNum(uint n, int base = 10); // 無符號整型數 QString &setNum(long n, int base = 10); // 長整型 QString &setNum(ulong n, int base = 10); // 無符號長整型數 QString &setNum(short n, int base = 10); // 短整型數 QString &setNum(ushort n, int base = 10); // 無符號短整型數 QString &setNum(double n, char format = 'g', int precision = 6); // 高精度浮點數 QString &setNum(float n, char format = 'g', int precision = 6); // 浮點數
QString number(int n, int base = 10); QString number(uint n, int base = 10); QString number(long n, int base = 10); QString number(ulong n ,int base = 10); QString number(double n, char format = 'q', int precision = 6);
//QString 類也提供了大小寫轉換的函數,這些函數都不會改變 QString 對象自己,而是將轉換後的結果做爲返回值。 QString toLower() const; // 轉換爲小寫 QString toUpper() const; // 轉換爲大寫
//QString 類提供了一個函數用於兩個 QString 對象的比較: int compare(const QString &s1, const QString &s2, Qt::CaseSensitivity cs = Qt::CaseSensitive); //這是一個靜態成員函數,它能夠比較 s1 和 s2 的大小,參數 cs 有如下兩個取值。 Qt::CaseInsensitive: //表示對大小寫不敏感 Qt::Casesensitive : //表示對大小寫敏感 //返回值的含義以下:大於 0 表示 s1 大於 s2,等於 0 表示 s1 等於 s2, 小於 0 表示 s1 小於 s2
int compare(const QString &other, Qt::CaseSensitivity cs = Qt::CaseSensitive) const;
bool operator < (StringType other) const; // 比較是否小於 other人 bool operator <= (StringType other) const; // 比較是否小於等於 other bool operator == (StringType other) const; // 比較是否等於 other bool operator > (StringType other) constt; // 比較是否大於 other bool operator >= (StringType other) const; // 比較是否大於等於 other bool operator != (StringType other) const; // 比較是否不等於 other
bool operator < (const char *s1, const QString &s2); // 比較 s1 是否小於 s2 bool operator <= (const char *s1, const QString &s2); // 比較 s1 是否小於等於 s2 bool operator == (const char *s1, const QString &s2); // 比較 s1 是否等於 s2 bool operator > (const char *s1, const QString &s2); // 比較 s1 是否大於 s2 bool operator >= (const char *s1, const QString &s2); // 比較 s1 是否大於等於 s2 bool operator != (const char *s1, const QString &s2); // 比較 s1 是否不等於 s2
// QString 類支持用賦值操做符進行對象的複製,其賦值操做符的聲明以下: QString &operator = (const QString &other); // 複製另一個 QString 對象 QString &operator = (const char *str); // 複製普通字符串 QString &operator = (char ch); // 複製字符 QString &operator = (QChar ch); // 複製 QChar 類對象
//成員函數能夠將另外一個字符串或字符接在 QString 對象後面,造成一個總體的字符串,它們的返回值是 QString 對象本身的引用,也就是說,能夠用在這個返回值再次調用成員函數,造成連續的字符串接續操做。 QString &append(const QString &str); // 接續 QString 對象 QString &append(const char *str); // 接續普通字符串 QString &append(QChar ch); // 接續 QChar 對象
//爲了讓代碼更直觀, QString 類中還定義了一個操做符用於字符串的接續,它們的功能與 append 相同。因爲 C++ 語言容許賦值操做符和複合賦值操做符的返回值做爲左值使用,所以它們的返回值也被設計爲 QString 對象本身的引用,故也能夠連續操做。但因爲複合賦值操做符的結合順序是從右往左,要想先計算左邊的操做數須要加括號。 QString &operator += (const QString &other); // 續接 QString 對象 QString &operator += (const char *str); // 續接普通字符串 QString &operator += (char ch); // 接續字符型數據 QString &operator += (QChar ch); // 接續 QChar 對象
//與 append 函數功能相似,如下的成員函數也可以將另外一個字符串或字符與 QString 對象鏈接起來,可是接在原字符串的前面: QString &prepend(const QString &str); // 在前面接續 QString 對象 QString &prepend(const char *str); // 在前面接續普通字符串 QString &prepend(QChar ch); // 在前面接續 QChar 對象
//用如下的成員函數能夠判斷 QString 對象是否包含指定的字符串或字符 bool contains(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; bool contains(cosnt ch, Qt::CaseSensitivity cs = Qt::CaseSensitive) const;
//用如下的成員函數能夠獲得 QString 對象包含某個特定字符串或字符的個數: int count(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; int count(QChar ch, Qt::CaseSensitivity cs = Qt::CaseSensitive) const;
//用如下的成員函數能夠獲得 QString 對象中某個特定字符串或字符出現的位置:這裏參數 from 是查找的起點,它能夠爲負數,-i 表示倒數第i個字符。查找的方向是從前日後。返回值是查找到的字符串或字符的位置,若是沒有找到則返回 -1。QString 類中還有與此功能類似的函數用於從後往前查找字符串或字符: int indexOf(const QString &str, int from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; int indexOf(QChar ch, int from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; int lastIndexOf(const QString &str, int from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; int lastIndexOf(QChar ch, int from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
//功能通常化的是在 QString 對象的任意位置插入另外一個字符串或字符,如: QString &insert(int position, const QString &str); // 插入字符串 QString &insert(int position, const QChar *pch, int size); // 插入 QChar 數組 QString &insert(int position, QChar ch); // 插入 QChar 對象 //這裏 position 參數是要插入的位置,返回值也是對 QString 對象本身的引用。
//與插入相反的操做是移除 QString 對象中的一部分,如: QString &remove(int position, int n);
//這個函數能夠移除 QString 對象中從位置 position 開始的 n 個字符,下面兩個成員函數則能夠從 QString 對象中移除指定的字符串或字符: QString &remove(QChar ch, Qt::CaseSensitivity cs = Qt::CaseSensitive); QString &remove(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive);
//如下是 QString 對象的替換操做,這三個函數的功能是將 QString 對象從 position 開始的 n 個字符替換爲新內容,新內容分別由 QString 對象、QChar 數組 和 QChar 對象表示。 QString &replace(int position, int n, const QString &after); // QString 對象 QString &replace(int position, int n, const QChar *pch, int size); // QChar 數組 QString &replace(int opsition, int n, QChar after); // QChar 對象
//如下成員函數則能夠搜索指定的字符串或字符並開始替換: QString &replace(const QString &before, const QString &after, Qt::CaseSensitivity cs = Qt::CaseSensitive); // QString 替換爲 QString QString &replace(QChar ch, cosnt QString &after, Qt::CaseSensitivity cs = Qt::CaseSensitive); // QChar 替換爲 QString QString &replace(QChar before, QChar after, Qt::CaseSensitivity cs = Qt::CaseSensitive); // Qchar 替換爲 QChar
//下面這個成員函數能夠清空一個 QString 對象的內容,使之成爲空字符串。 void clear();
//而下面這個成員函數能夠截斷 QStrring 對象,也就是去掉指定位置後的全部內容: void truncate(int position); // 從位置 position 截斷,位置從 0 開始編號 //下面這個成員函數能夠截掉 QString 對象最後的若干個字符: void chop(int n); // 截掉最後的 n 個字符
QString left(int n) const; // 獲得左邊 n 個字符構成的子字符串 QString right(int n) const; // 獲得右邊 n 個字符構成的子字符串 QString mid(int position, int n = -1) const; // 從中間獲得子字符串 //從中間獲得子字符串時,參數 position 是子字符串的起始位置,參數 n 是字符串的個數,若是n 爲 -1,則表示一直到原字符串的結尾。
//下面這個成員函數能夠截去 QString 對象中頭部和尾部的空白字符: //空白字符包括空格、回車、換行、製表符等字符。 QString trimmed() const;
//下面這個成員函數不只能去掉 QString 對象頭尾的空白字符,還能將中間的連續多個空白字符所有替換成一個空格: QString simlified() const;
加法操做符能夠將兩個字符串或字符鏈接起來並以 QString 臨時對象的方式返回:注意加法操做符的兩個操做數中必須至少有一個是 QString 對象,不然沒法重載操做符。顯然,加法操做副都不是 QString 類的成員。ui
const QString operator+(const QString &s1, const QString &s2); const QString operator+(const QString &s1, const char *s2); const QString operator+(const char s1, const QString &s2); const QString operator+(const QString &s, char ch);
//QString 類也像普通的字符串同樣能夠根據下標獲得某個位置上的字符: const QChar at(int position) const;
//更直觀的方法是用如下的操做符: const QChar operator[] (int position) const; const QChar operator[] (uint position) const;
//上述QString 對象的取字符操做就相似於對一個字符數組的操做,但上述操做不能修改字符,事實上,經過[]操做符獲得的字符還能夠被修改,要用到另外兩個重載的[]操做符: QCharRef operator[] (int position); QCharRef operator[] (uint position); //返回的 QCharRef 類是一個輔助類,對它的修改將反映到原字符串中去。
int size() const; int length() const;