<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # QString Class Reference ## [[QtCore](index.htm) module] QString類提供了一個Unicode字符的字符串。[More...](#details) ### Types * `enum NormalizationForm { NormalizationForm_D, NormalizationForm_C, NormalizationForm_KD, NormalizationForm_KC }` * `enum SectionFlag { SectionDefault, SectionSkipEmpty, SectionIncludeLeadingSep, SectionIncludeTrailingSep, SectionCaseInsensitiveSeps }` * `class **[SectionFlags](index.htm)**` * `enum SplitBehavior { KeepEmptyParts, SkipEmptyParts }` ### Methods * `__init__ (self)` * `__init__ (self, QKeySequence)` * `__init__ (self, QScriptString)` * `__init__ (self, int?size, QChar?c)` * `__init__ (self, QString?s)` * `__init__ (self, QByteArray?a)` * `__init__ (self, QUuid)` * `QString append (self, QString?s)` * `QString append (self, QLatin1String?s)` * `QString append (self, QByteArray?s)` * `QString arg (self, int?a, int?fieldWidth?=?0, int?base?=?10, QChar?fillChar?=?QLatin1Char(' '))` * `QString arg (self, float?a, int?fieldWidth?=?0, str?format?=?'g', int?precision?=?-1, QChar?fillChar?=?QLatin1Char(' '))` * `QString arg (self, int?a, int?fieldWidth?=?0, int?base?=?10, QChar?fillChar?=?QLatin1Char(' '))` * `QString arg (self, int?a, int?fieldWidth?=?0, int?base?=?10, QChar?fillChar?=?QLatin1Char(' '))` * `QString arg (self, QString?a, int?fieldWidth?=?0, QChar?fillChar?=?QLatin1Char(' '))` * `QString arg (self, QString?a1, QString?a2)` * `QString arg (self, QString?a1, QString?a2, QString?a3)` * `QString arg (self, QString?a1, QString?a2, QString?a3, QString?a4)` * `QString arg (self, QString?a1, QString?a2, QString?a3, QString?a4, QString?a5)` * `QString arg (self, QString?a1, QString?a2, QString?a3, QString?a4, QString?a5, QString?a6)` * `QString arg (self, QString?a1, QString?a2, QString?a3, QString?a4, QString?a5, QString?a6, QString?a7)` * `QString arg (self, QString?a1, QString?a2, QString?a3, QString?a4, QString?a5, QString?a6, QString?a7, QString?a8)` * `QString arg (self, QString?a1, QString?a2, QString?a3, QString?a4, QString?a5, QString?a6, QString?a7, QString?a8, QString?a9)` * `QChar at (self, int?i)` * `int capacity (self)` * `chop (self, int?n)` * `clear (self)` * `int compare (self, QString?s)` * `int compare (self, QString?s, Qt.CaseSensitivity?cs)` * `int compare (self, QLatin1String?other, Qt.CaseSensitivity?cs?=?Qt.CaseSensitive)` * `int compare (self, QStringRef?ref, Qt.CaseSensitivity?cs?=?Qt.CaseSensitive)` * `bool contains (self, QString?str, Qt.CaseSensitivity?cs?=?Qt.CaseSensitive)` * `bool contains (self, QStringRef?s, Qt.CaseSensitivity?cs?=?Qt.CaseSensitive)` * `bool contains (self, QRegExp?rx)` * `int count (self)` * `int count (self, QString?str, Qt.CaseSensitivity?cs?=?Qt.CaseSensitive)` * `int count (self, QStringRef?str, Qt.CaseSensitivity?cs?=?Qt.CaseSensitive)` * `int count (self, QRegExp)` * `bool endsWith (self, QString?s, Qt.CaseSensitivity?cs?=?Qt.CaseSensitive)` * `bool endsWith (self, QStringRef?s, Qt.CaseSensitivity?cs?=?Qt.CaseSensitive)` * `bool endsWith (self, QLatin1String?s, Qt.CaseSensitivity?cs?=?Qt.CaseSensitive)` * `QString fill (self, QChar?ch, int?size?=?-1)` * `int indexOf (self, QString?str, int?from?=?0, Qt.CaseSensitivity?cs?=?Qt.CaseSensitive)` * `int indexOf (self, QStringRef?str, int?from?=?0, Qt.CaseSensitivity?cs?=?Qt.CaseSensitive)` * `int indexOf (self, QLatin1String?str, int?from?=?0, Qt.CaseSensitivity?cs?=?Qt.CaseSensitive)` * `int indexOf (self, QRegExp?rx, int?from?=?0)` * `QString insert (self, int?i, QString?s)` * `QString insert (self, int?i, QLatin1String?s)` * `bool isEmpty (self)` * `bool isNull (self)` * `bool isRightToLeft (self)` * `bool isSimpleText (self)` * `int lastIndexOf (self, QString?str, int?from?=?-1, Qt.CaseSensitivity?cs?=?Qt.CaseSensitive)` * `int lastIndexOf (self, QStringRef?str, int?from?=?-1, Qt.CaseSensitivity?cs?=?Qt.CaseSensitive)` * `int lastIndexOf (self, QLatin1String?str, int?from?=?-1, Qt.CaseSensitivity?cs?=?Qt.CaseSensitive)` * `int lastIndexOf (self, QRegExp?rx, int?from?=?-1)` * `QString left (self, int?len)` * `QString leftJustified (self, int?width, QChar?fillChar?=?QLatin1Char(' '), bool?truncate?=?False)` * `int length (self)` * `int localeAwareCompare (self, QString?s)` * `int localeAwareCompare (self, QStringRef?s)` * `QString mid (self, int?position, int?n?=?-1)` * `QString normalized (self, NormalizationForm?mode)` * `QString normalized (self, NormalizationForm?mode, QChar.UnicodeVersion?version)` * `QString prepend (self, QString?s)` * `QString prepend (self, QLatin1String?s)` * `QString prepend (self, QByteArray?s)` * `push_back (self, QString?s)` * `push_front (self, QString?s)` * `QString remove (self, int?i, int?len)` * `QString remove (self, QString?str, Qt.CaseSensitivity?cs?=?Qt.CaseSensitive)` * `QString remove (self, QRegExp?rx)` * `QString repeated (self, int?times)` * `QString replace (self, int?i, int?len, QString?after)` * `QString replace (self, QString?before, QString?after, Qt.CaseSensitivity?cs?=?Qt.CaseSensitive)` * `QString replace (self, QRegExp?rx, QString?after)` * `QString replace (self, QLatin1String?before, QLatin1String?after, Qt.CaseSensitivity?cs?=?Qt.CaseSensitive)` * `QString replace (self, QLatin1String?before, QString?after, Qt.CaseSensitivity?cs?=?Qt.CaseSensitive)` * `QString replace (self, QString?before, QLatin1String?after, Qt.CaseSensitivity?cs?=?Qt.CaseSensitive)` * `reserve (self, int?asize)` * `resize (self, int?size)` * `QString right (self, int?len)` * `QString rightJustified (self, int?width, QChar?fillChar?=?QLatin1Char(' '), bool?truncate?=?False)` * `QString section (self, QString?sep, int?start, int?end?=?-1, SectionFlags?flags?=?QString.SectionDefault)` * `QString section (self, QRegExp?reg, int?start, int?end?=?-1, SectionFlags?flags?=?QString.SectionDefault)` * `QString setNum (self, int?n, int?base?=?10)` * `QString setNum (self, float?n, str?format?=?'g', int?precision?=?6)` * `QString setNum (self, int?n, int?base?=?10)` * `QString setNum (self, int?n, int?base?=?10)` * `QString simplified (self)` * `int size (self)` * `QStringList split (self, QString?sep, SplitBehavior?behavior?=?QString.KeepEmptyParts, Qt.CaseSensitivity?cs?=?Qt.CaseSensitive)` * `QStringList split (self, QRegExp?sep, SplitBehavior?behavior?=?QString.KeepEmptyParts)` * `squeeze (self)` * `bool startsWith (self, QString?s, Qt.CaseSensitivity?cs?=?Qt.CaseSensitive)` * `bool startsWith (self, QStringRef?s, Qt.CaseSensitivity?cs?=?Qt.CaseSensitive)` * `bool startsWith (self, QLatin1String?s, Qt.CaseSensitivity?cs?=?Qt.CaseSensitive)` * `swap (self, QString?other)` * `QByteArray toAscii (self)` * `QString toCaseFolded (self)` * `(float, bool?ok) toDouble (self)` * `(float, bool?ok) toFloat (self)` * `(int, bool?ok) toInt (self, int?base?=?10)` * `QByteArray toLatin1 (self)` * `QByteArray toLocal8Bit (self)` * `(int, bool?ok) toLong (self, int?base?=?10)` * `(int, bool?ok) toLongLong (self, int?base?=?10)` * `QString toLower (self)` * `(int, bool?ok) toShort (self, int?base?=?10)` * `(int, bool?ok) toUInt (self, int?base?=?10)` * `(int, bool?ok) toULong (self, int?base?=?10)` * `(int, bool?ok) toULongLong (self, int?base?=?10)` * `QString toUpper (self)` * `(int, bool?ok) toUShort (self, int?base?=?10)` * `QByteArray toUtf8 (self)` * `QString trimmed (self)` * `truncate (self, int?pos)` ### Static Methods * `int compare (QString?s1, QString?s2)` * `int compare (QString?s1, QString?s2, Qt.CaseSensitivity?cs)` * `int compare (QString?s1, QLatin1String?s2, Qt.CaseSensitivity?cs?=?Qt.CaseSensitive)` * `int compare (QLatin1String?s1, QString?s2, Qt.CaseSensitivity?cs?=?Qt.CaseSensitive)` * `int compare (QString?s1, QStringRef?s2, Qt.CaseSensitivity?cs?=?Qt.CaseSensitive)` * `QString fromAscii (str?str, int?size?=?-1)` * `QString fromLatin1 (str?str, int?size?=?-1)` * `QString fromLocal8Bit (str?str, int?size?=?-1)` * `QString fromUtf8 (str?str, int?size?=?-1)` * `int localeAwareCompare (QString?s1, QString?s2)` * `int localeAwareCompare (QString?s1, QStringRef?s2)` * `QString number (int?n, int?base?=?10)` * `QString number (float?n, str?format?=?'g', int?precision?=?6)` * `QString number (int?n, int?base?=?10)` * `QString number (int?n, int?base?=?10)` ### Special Methods * `QString __add__ (self, QString?s2)` * `QString __add__ (self, QByteArray?ba)` * `int __contains__ (self, QString?s)` * `bool __eq__ (self, QString?s)` * `bool __eq__ (self, QLatin1String?s)` * `bool __eq__ (self, QByteArray?s)` * `bool __eq__ (self, QStringRef?s2)` * `bool __ge__ (self, QString?s)` * `bool __ge__ (self, QLatin1String?s)` * `bool __ge__ (self, QByteArray?s)` * `QString __getitem__ (self, int?i)` * `QString __getitem__ (self, slice?slice)` * `bool __gt__ (self, QString?s)` * `bool __gt__ (self, QLatin1String?s)` * `bool __gt__ (self, QByteArray?s)` * `int __hash__ (self)` * `QString __iadd__ (self, QChar.SpecialCharacter?c)` * `QString __iadd__ (self, QString?s)` * `QString __iadd__ (self, QLatin1String?s)` * `QString __iadd__ (self, QByteArray?s)` * `QString __imul__ (self, int?m)` * `bool __le__ (self, QString?s)` * `bool __le__ (self, QLatin1String?s)` * `bool __le__ (self, QByteArray?s)` * `__len__ (self)` * `bool __lt__ (self, QString?s)` * `bool __lt__ (self, QLatin1String?s)` * `bool __lt__ (self, QByteArray?s)` * `QString __mul__ (self, int?m)` * `bool __ne__ (self, QString?s)` * `bool __ne__ (self, QLatin1String?s)` * `bool __ne__ (self, QByteArray?s)` * `bool __ne__ (self, QStringRef?s2)` * `str __repr__ (self)` * `str __str__ (self)` * `unicode __unicode__ (self)` * * * ## Detailed Description 這個類可以醃制。 一個Python字符串或使用unicode對象,[QLatin1String](qlatin1string.html)或[QChar](qchar.html)可用于每當一個[QString](qstring.html)預計。 QString類提供了一個Unicode字符的字符串。 賣場QString的16位字符串[QChar](qchar.html)s,其中每個[QChar](qchar.html)對應1的Unicode 4.0字符。 ( Unicode字符代碼值高于65535使用代理對存儲,也就是說,兩個連續的[QChar](qchar.html)秒。 ) [Unicode](index.htm#unicode)今天,它支持大多數的書寫系統中使用的國際標準。它是US-ASCII ( ANSI X3.4 - 1986)和拉丁語-1 ( ISO 8859-1 )的一個超集,所有的US-ASCII/Latin-1字符可在相同的代碼的位置。 在幕后,使用的QString[implicit sharing](index.htm)(復制上寫的),以減少內存使用量,避免不必要的數據復制。這也有助于減少存儲16位的字符,而不是8位字符的固有開銷。 除了的QString , Qt還提供了[QByteArray](qbytearray.html)類存儲原始字節和傳統的8位'\ 0'結尾的字符串。在大多數情況下, QString的是您要使用的類。它是用來在整個Qt的API和Unicode支持可以確保如果您想擴展您的應用程序的市場在某些時候你的應用程序將很容易翻譯。兩個主要的情況下[QByteArray](qbytearray.html)當您需要存儲原始二進制數據是合適的,而當內存保護是至關重要的(例如,用[Qt for Embedded Linux](index.htm)) 。 ### Initializing a String 初始化一個QString的一種方法是簡單地傳遞一個`const char *`它的構造函數。例如,下面的代碼創建一個包含數據的“Hello ”大小5的QString的: ``` QString str = "Hello"; ``` QString的轉換`const char *`數據轉換為Unicode使用[fromAscii](qstring.html#fromAscii)()函數。默認情況下,[fromAscii](qstring.html#fromAscii)( )把字符以上128為Latin-1字符,但是這可以通過調用改變[QTextCodec.setCodecForCStrings](qtextcodec.html#setCodecForCStrings)( ) 。 在所有的QString的函數取`const char *`參數,該`const char *`被解釋為經典的C風格的'\ 0'結尾的字符串。它是合法的`const char *`參數為0 。 還可以提供字符串數據作為數組[QChar](qchar.html)S: ``` static const [QChar](qchar.html) data[4] = { 0x0055, 0x006e, 0x10e3, 0x03a3 }; QString str(data, 4); ``` 做的QString的深層副本[QChar](qchar.html)數據,所以你可以在以后修改它沒有遇到的副作用。 (如果由于性能原因你不希望采取的字符數據,使用深拷貝[QString.fromRawData](qstring.html#fromRawData)( )來代替。 ) 另一種方法是利用設置字符串的大小[resize](qstring.html#resize)()和初始化每個字符的數據字符。 QString的使用基于0的索引,就像C + +中的數組。要訪問該字符在特定索引位置,則可以使用[operator[]](qstring.html#operator-5b-5d)( ) 。對非const的字符串,[operator[]](qstring.html#operator-5b-5d)( )返回一個引用,可以在賦值的左側使用一個字符。例如: ``` QString str; str.resize(4); str[0] = [QChar](qchar.html)('U'); str[1] = [QChar](qchar.html)('n'); str[2] = [QChar](qchar.html)(0x10e3); str[3] = [QChar](qchar.html)(0x03a3); ``` 對于只讀訪問,另一種語法是使用[at](qstring.html#at)( )函數: ``` QString str; for (int i = 0; i < str.size(); ++i) { if (str.at(i) >= [QChar](qchar.html)('a') && str.at(i) <= [QChar](qchar.html)('f')) qDebug() << "Found character in range [a-f]"; } ``` 該[at](qstring.html#at)( )函數可以比快[operator[]](qstring.html#operator-5b-5d)(),因為它不會導致一個[deep copy](index.htm#deep-copy)發生。或者,使用[left](qstring.html#left)( )[right](qstring.html#right)() ,或[mid](qstring.html#mid)( )函數來在一個時間提取幾個字符。 一個QString的可以嵌入'\ 0 '字符([QChar.Null](qchar.html#SpecialCharacter-enum)) 。該[size](qstring.html#size)( )函數總是返回整個字符串的大小,包括嵌入式'\ 0 '字符。 調用后[resize](qstring.html#resize)( )函數,新分配的字符都未定義的值。要設置所有字符的字符串到一個特定的值,使用[fill](qstring.html#fill)()函數。 的QString提供幾十旨在簡化字符串使用重載的。例如,如果你想一個QString的一個字符串字面量進行比較,可以寫出這樣的代碼,它會如預期般運作: ``` QString str; if (str == "auto" || str == "extern" || str == "static" || str == "register") { // ... } ``` 您也可以字符串文字傳遞給需要將QString作為參數,調用的QString (為const char * )構造函數。同樣,你可以通過一個QString時,一個函數,它接受一個`const char *`使用的參數[qPrintable](index.htm#qPrintable)()宏返回給定的QString作為`const char *`。這等效于調用\u003cQString\u003e 。[toLocal8Bit](qstring.html#toLocal8Bit)( ) 。[constData](qstring.html#constData)( ) 。 ### Manipulating String Data 的QString提供了修飾的字符數據的基本功能如下:[append](qstring.html#append)( )[prepend](qstring.html#prepend)( )[insert](qstring.html#insert)( )[replace](qstring.html#replace)()和[remove](qstring.html#remove)( ) 。例如: ``` QString str = "and"; str.prepend("rock "); // str == "rock and" str.append(" roll"); // str == "rock and roll" str.replace(5, 3, "&"); // str == "rock & roll" ``` 如果你正在建設一個QString的逐漸提前知道大致的QString將有多少個字符包含,你可以調用[reserve](qstring.html#reserve)( ) ,要求QString時,預先分配一定數量的內存。您也可以撥打[capacity](qstring.html#capacity)()來找出多少內存QString的實際分配。 該[replace](qstring.html#replace)()和[remove](qstring.html#remove)( )函數的前兩個參數是要開始擦除,并應被刪除的字符數的位置。如果你想更換另一特定字符串的所有匹配,使用這兩個參數中的一個[replace](qstring.html#replace)( )重載。 一個常見的要求是從一個字符串(的'\ n ',' \ T' ,'',等等)刪除空白字符。如果你想從一個QString的兩端刪除空白字符,請使用[trimmed](qstring.html#trimmed)()函數。如果你想從兩端刪除空白和字符串中的單個空格字符替換多個連續的空格,使用[simplified](qstring.html#simplified)( ) 。 如果你想找到一個特定的字符或子串中所有出現在一個QString的,使用[indexOf](qstring.html#indexOf)()或[lastIndexOf](qstring.html#lastIndexOf)()函數。前者向前搜索從給定的索引位置,后者向后搜索開始。都返回字符或字符串的索引位置,如果他們找到它,否則,它們將返回-1 。例如,下面是一個典型的循環,找到一個特定的子字符串的所有匹配: ``` QString str = "We must be <b>bold</b>, very <b>bold</b>"; int j = 0; while ((j = str.indexOf("<b>", j)) != -1) { qDebug() << "Found <b> tag at index position" << j; ++j; } ``` 的QString提供了許多功能,將數字轉換成字符串和字符串轉換成數字。請參閱[arg](qstring.html#arg)()函數,該[setNum](qstring.html#setNum)()函數,該[number](qstring.html#number)()靜態函數,并且[toInt](qstring.html#toInt)( )[toDouble](qstring.html#toDouble)() ,和類似的功能。 為了得到一個字符串使用大寫或小寫版本[toUpper](qstring.html#toUpper)()或[toLower](qstring.html#toLower)( ) 。 字符串列表是由處理[QStringList](qstringlist.html)類。您可以使用字符串分割成一個字符串列表的[split](qstring.html#split)( )函數,并加入字符串列表與一個可選的分離器使用一個單獨的字符串[QStringList.join](qstringlist.html#join)( ) 。你可以從一個字符串列表中包含特定字符串或匹配特定得到的字符串列表[QRegExp](qregexp.html)使用[QStringList.filter](qstringlist.html#filter)()函數。 ### Querying String Data 如果你想看看一個QString的啟動或與特定的子串結束使用[startsWith](qstring.html#startsWith)()或[endsWith](qstring.html#endsWith)( ) 。如果你只是想檢查的QString是否包含特定字符或字符串,可以使用[contains](qstring.html#contains)()函數。如果你想了解有多少次一個特定的字符或子出現在字符串,使用[count](qstring.html#count)( ) 。 將QString可以使用重載的運算符,例如進行比較[operator&lt;](qstring.html#operator-lt)( )[operator&lt;=](qstring.html#operator-lt-eq)( )[operator==](qstring.html#operator-eq-eq)( )[operator&gt;=](qstring.html#operator-gt-eq)() ,等等。請注意,比較的字符的數值Unicode值完全基于。這是非常快的,但不是什么人的期望;的[QString.localeAwareCompare](qstring.html#localeAwareCompare)( )函數是排序用戶界面字符串一個更好的選擇。 為了獲得一個指向實際的字符數據,調用[data](qstring.html#data)()或[constData](qstring.html#constData)( ) 。這些函數返回一個指針的開始[QChar](qchar.html)數據。指針是保證仍然有效,直到一個非const函數被調用的QString的。 ### Converting Between 8-Bit Strings and Unicode Strings 的QString提供以下四種函數返回一個`const char *`版本字符串為[QByteArray](qbytearray.html):[toAscii](qstring.html#toAscii)( )[toLatin1](qstring.html#toLatin1)( )[toUtf8](qstring.html#toUtf8)()和[toLocal8Bit](qstring.html#toLocal8Bit)( ) 。 * [toAscii](qstring.html#toAscii)() returns an 8-bit string encoded using the codec specified by QTextCodec.codecForCStrings (by default, that is Latin 1). * [toLatin1](qstring.html#toLatin1)() returns a Latin-1 (ISO 8859-1) encoded 8-bit string. * [toUtf8](qstring.html#toUtf8)() returns a UTF-8 encoded 8-bit string. UTF-8 is a superset of US-ASCII (ANSI X3.4-1986) that supports the entire Unicode character set through multibyte sequences. * [toLocal8Bit](qstring.html#toLocal8Bit)() returns an 8-bit string using the system's local encoding. 從這些編碼的一個轉換,提供的QString[fromAscii](qstring.html#fromAscii)( )[fromLatin1](qstring.html#fromLatin1)( )[fromUtf8](qstring.html#fromUtf8)()和[fromLocal8Bit](qstring.html#fromLocal8Bit)( ) 。其它的編碼,通過支持[QTextCodec](qtextcodec.html)類。 如上所述, QString的提供了大量的函數和運算符可以很容易地與互操作`const char *`字符串。但是這個功能是一個雙刃劍:它讓QString的使用更為方便,如果所有的字符串都是US-ASCII或Latin- 1 ,但總是有風險的或隱式轉換`const char *`完成使用錯誤的8位編碼。為了盡量減少這些風險,您可以關閉這些隱式轉換通過定義以下兩個預處理器符號: * `QT_NO_CAST_FROM_ASCII` disables automatic conversions from C string literals and pointers to Unicode. * `QT_NO_CAST_TO_ASCII` disables automatic conversion from QString to C strings. 在全球范圍內定義這些預處理器符號為您的應用程序的一種方法是將以下條目??添加到您的[qmake project file](index.htm): ``` DEFINES += QT_NO_CAST_FROM_ASCII \ QT_NO_CAST_TO_ASCII ``` 然后,您需要顯式調用[fromAscii](qstring.html#fromAscii)( )[fromLatin1](qstring.html#fromLatin1)( )[fromUtf8](qstring.html#fromUtf8)() ,或[fromLocal8Bit](qstring.html#fromLocal8Bit)()來構造從一個8位字符串的QString ,或者使用輕量[QLatin1String](qlatin1string.html)類,例如: ``` QString url = QLatin1String("http://www.unicode.org/"); ``` 同樣的,你必須調用[toAscii](qstring.html#toAscii)( )[toLatin1](qstring.html#toLatin1)( )[toUtf8](qstring.html#toUtf8)() ,或[toLocal8Bit](qstring.html#toLocal8Bit)()明確地向的QString轉換為一個8位的字符串。 (其它的編碼是通過支持[QTextCodec](qtextcodec.html)類。 ) | Note for C Programmers | | --- | | Due to C++'s type system and the fact that QString is [implicitly shared](index.htm#implicitly-shared), QStrings may be treated like `int`s or other basic types. For example: ``` QString Widget.boolToString(bool b) { QString result; if (b) result = "True"; else result = "False"; return result; } ``` 該`result`變量是在堆棧上分配一個普通變量。何時`return`被調用,因為我們通過返回值,拷貝構造函數被調用和字符串的一個副本被返回。沒有實際的復制發生感謝隱含共享。 | ### Distinction Between Null and Empty Strings 由于歷史原因, QString的一個空字符串和空字符串之間的區別。一_null_字符串是使用的QString的默認構造函數初始化或通過傳遞(為const char * )0給構造函數的字符串。一個_empty_字符串是用大小為0的字符串。空字符串總是空的,但一個空字符串不一定空: ``` QString().isNull(); // returns true QString().isEmpty(); // returns true QString("").isNull(); // returns false QString("").isEmpty(); // returns true QString("abc").isNull(); // returns false QString("abc").isEmpty(); // returns false ``` 之外的全部功能[isNull](qstring.html#isNull)( )把空字符串相同的為空字符串。例如,[toAscii](qstring.html#toAscii)( ) 。[constData](qstring.html#constData)( )返回一個指向一個'\ 0 '字符為空字符串(_not_一個空指針) ,和[QString](qstring.html#QString)( )比較相等的QString ( “”) 。我們建議您始終使用[isEmpty](qstring.html#isEmpty)( )函數,并避免[isNull](qstring.html#isNull)( ) 。 ### Argument Formats 在成員函數,其中一個參數_format_可以指定(例如,[arg](qstring.html#arg)( )[number](qstring.html#number)( ) ) ,參數_format_可以是下列之一: | Format | Meaning | | --- | --- | | `e` | format as [-]9.9e[+&#124;-]999 | | `E` | format as [-]9.9E[+&#124;-]999 | | `f` | format as [-]9.9 | | `g` | use `e` or `f` format, whichever is the most concise | | `G` | use `E` or `f` format, whichever is the most concise | A _precision_也與參數指定_format_。為' E' , ' E'和'F'格式中,_precision_表示的數字的數量_after_小數點。對于“G”和“G”格式中,_precision_較顯著位數(尾隨零被省略)的最大數量。 ### More Efficient String Construction 使用的QString`'+'`算子,它很容易從多個子構建復雜的字符串。你經常會寫這樣的代碼: ``` QString foo; QString type = "long"; foo->setText(QLatin1String("vector<") + type + QLatin1String(">.iterator")); if (foo.startsWith("(" + type + ") 0x")) ... ``` 有什么不對與任何這些字符串構造的,但也有一些隱藏的低效率。與Qt 4.6開始,你可以消滅他們。 第一,多種用途`'+'`運營商通常是指多個內存分配。當串聯_n_子,其中_n &gt; 2_,可以有多達_n - 1_調用內存分配器。 第二,[QLatin1String](qlatin1string.html)不,但在內部調用存儲其長度[qstrlen](index.htm#qstrlen)()時,它需要知道它的長度。 4.6 ,內部的模板類`QStringBuilder`一直伴隨著幾個輔助函數添加。這個類被標記為內部并沒有出現在文檔中,因為你的目的不是實例化它在你的代碼。它的使用將是自動的,如下面所述。該類中發現`src/corelib/tools/qstringbuilder.cpp`如果你想看看它。 `QStringBuilder`使用表達式模板和重新實現了`'%'`運營商這樣當你使用`'%'`對于字符串連接,而不是`'+'`,多個子串連將被推遲到最后的結果就是即將被分配到的QString 。在這一點上,存儲器所需的最終結果的量是已知的。該內存分配器,然后調用_once_獲得所需要的空間,而子被復制到了一個接一個。 `QLatin1Literal`是第二類內部,可替換[QLatin1String](qlatin1string.html),它可以出于兼容性原因不能改變。`QLatin1Literal`存儲其長度,從而節省了時間,當`QStringBuilder`計算所需的內存為最后的字符串的數量。 額外的效率是通過內聯和減少引用計數(從創建取得的QString`QStringBuilder`通常具有1的引用計數,而[QString.append](qstring.html#append)( )需要一個額外的測試) 。 有三種方法可以訪問字符串構造這個改進的方法。直接的方法是包括`QStringBuilder`無論你想使用它,并使用`'%'`操盤手的`'+'`連接字符串時: ``` #include <QStringBuilder> QString hello("hello"); [QStringRef](qstringref.html) el(&hello, 2, 3); QLatin1String world("world"); QString message = hello % el % world % [QChar](qchar.html)('!'); ``` 更具全球性的做法,是最方便的,但不完全兼容的源代碼,是這樣定義你的pro文件: ``` DEFINES *= QT_USE_QSTRINGBUILDER ``` 和`'+'`會自動為所執行的`QStringBuilder` `'%'`無處不在。 * * * ## Type Documentation ``` QString.NormalizationForm ``` 這個枚舉描述Unicode文本的各種標準化的形式。 | Constant | Value | Description | | --- | --- | --- | | `QString.NormalizationForm_D` | `0` | 標準分解 | | `QString.NormalizationForm_C` | `1` | 標準分解其次是標準合成 | | `QString.NormalizationForm_KD` | `2` | 兼容性分解 | | `QString.NormalizationForm_KC` | `3` | 兼容性分解其次是標準合成 | **See also** [normalized](qstring.html#normalized)()和[Unicode Standard Annex #15](http://www.unicode.org/reports/tr15/)。 ``` QString.SectionFlag ``` 該枚舉指定標志,可用于影響的各個方面[section](qstring.html#section)( )就分隔符和空字段功能的行為。 | Constant | Value | Description | | --- | --- | --- | | `QString.SectionDefault` | `0x00` | 空字段進行計數,前緣和后隔板不包括在內,且所述分離器靈敏相比的情況。 | | `QString.SectionSkipEmpty` | `0x01` | 把空字段,如果他們不存在,即它們不是盡可能考慮_start_和_end_關注。 | | `QString.SectionIncludeLeadingSep` | `0x02` | 包括領先的分隔符(如果有的話)結果字符串。 | | `QString.SectionIncludeTrailingSep` | `0x04` | 在結果字符串中包含尾隨分隔符(如果有的話) 。 | | `QString.SectionCaseInsensitiveSeps` | `0x08` | 不區分大小寫比較的分隔符。 | 該SectionFlags類型是一個typedef為[QFlags](index.htm)\u003cSectionFlag\u003e 。它存儲SectionFlag值的或組合。 **See also** [section](qstring.html#section)( ) 。 ``` QString.SplitBehavior ``` 此枚舉指定如何[split](qstring.html#split)( )函數的行為應該就空字符串。 | Constant | Value | Description | | --- | --- | --- | | `QString.KeepEmptyParts` | `0` | 如果某個字段是空的,保持它的結果。 | | `QString.SkipEmptyParts` | `1` | 如果某個字段為空,不包括它的結果。 | **See also** [split](qstring.html#split)( ) 。 * * * ## Method Documentation ``` QString.__init__ (self) ``` 構造一個空字符串。空字符串也是空的。 **See also** [isEmpty](qstring.html#isEmpty)( ) 。 ``` QString.__init__ (self, QKeySequence) ``` 如果QtGui模塊導入此方法僅適用。 構造一個空字符串。空字符串也是空的。 **See also** [isEmpty](qstring.html#isEmpty)( ) 。 ``` QString.__init__ (self, QScriptString) ``` 如果QtScript模塊導入此方法僅適用。 構造一個空字符串。空字符串也是空的。 **See also** [isEmpty](qstring.html#isEmpty)( ) 。 ``` QString.__init__ (self, int?size, QChar?c) ``` 構造與第一次初始化字符串_size_的字符[QChar](qchar.html)排列_unicode_。 [QString](qstring.html)使得字符串數據的深層副本。 unicode的數據被原樣復制,如果存在字節順序標記被保留。 ``` QString.__init__ (self, QString?s) ``` 構造具有的字符初始化的字符串[QChar](qchar.html)排列_unicode_,這必須終止與0 。 [QString](qstring.html)使得字符串數據的深層副本。 unicode的數據被原樣復制,如果存在字節順序標記被保留。 此功能被引入Qt的4.7 。 ``` QString.__init__ (self, QByteArray?a) ``` 構造大小為1包含字符的字符串_ch_。 ``` QString.__init__ (self, QUuid) ``` 構造的給定的字符串_size_與每一個字符集_ch_。 **See also** [fill](qstring.html#fill)( ) 。 ``` QString QString.append (self, QString?s) ``` 附加字符串_str_到這個字符串的結尾。 例如: ``` [QString](qstring.html) x = "free"; [QString](qstring.html) y = "dom"; x.append(y); // x == "freedom" ``` 這是與使用的[insert](qstring.html#insert)( )函數: ``` x.insert(x.size(), y); ``` 追加()函數通常是非常快的([constant time](index.htm#constant-time)) ,因為[QString](qstring.html)預分配額外的空間,在字符串數據的末尾,從而無需每次都重新配置整個字符串成長。 **See also** [operator+=](qstring.html#operator-2b-eq)( )[prepend](qstring.html#prepend)()和[insert](qstring.html#insert)( ) 。 ``` QString QString.append (self, QLatin1String?s) ``` 添加給定的字符串_reference_這個字符串,并返回結果。 此功能被引入Qt的4.4 。 ``` QString QString.append (self, QByteArray?s) ``` 這個函數的重載[append](qstring.html#append)( ) 。 追加Latin-1的字符串_str_這個字符串。 ``` QString QString.arg (self, int?a, int?fieldWidth?=?0, int?base?=?10, QChar?fillChar?=?QLatin1Char(' ')) ``` 返回此字符串的一個副本,編號最小的位置標記通過字符串替換_a_即`%1`,`%2`,...,`%99`。 _fieldWidth_指定間距的最小量這樣的說法_a_不得佔用。如果_a_比需要較少的空間_fieldWidth_,它被填充到_fieldWidth_與性格_fillChar_。正_fieldWidth_產生右對齊文本。負_fieldWidth_產生左對齊的文本。 這個例子顯示了我們如何創建一個`status`串報告進展情況,同時處理文件的列表: ``` [QString](qstring.html) i; // current file's number [QString](qstring.html) total; // number of files to process [QString](qstring.html) fileName; // current file's name [QString](qstring.html) status = [QString](qstring.html)("Processing file %1 of %2: %3") .arg(i).arg(total).arg(fileName); ``` First, `arg(i)`替換`%1`。然后`arg(total)`替換`%2`。最后,`arg(fileName)`替換`%3`。 一個優點使用arg的( )以上[sprintf](qstring.html#sprintf)( )是的編號的位置標記的順序可以改變,如果應用程序的字符串翻譯成其他語言,但每個ARG ( )仍然將取代編號最小的未更換位置標記,不管它在哪里出現。此外,如果位置標記`%i`多次出現在字符串中時, ARG ( )取代他們。 如果沒有未更換位置標記剩馀,一個輸出警告信息,其結果是不確定的。位置標記號碼必須是范圍為1至99 。 ``` QString QString.arg (self, float?a, int?fieldWidth?=?0, str?format?=?'g', int?precision?=?-1, QChar?fillChar?=?QLatin1Char(' ')) ``` 這個函數的重載[arg](qstring.html#arg)( ) 。 這是相同的`str.arg(a1).arg(a2)`,除了字符串_a1_和_a2_替換在一次通過。這可以使如果有差別_a1_例如包含`%1`: ``` [QString](qstring.html) str; str = "%1 %2"; str.arg("%1f", "Hello"); // returns "%1f Hello" str.arg("%1f").arg("Hello"); // returns "Hellof %2" ``` ``` QString QString.arg (self, int?a, int?fieldWidth?=?0, int?base?=?10, QChar?fillChar?=?QLatin1Char(' ')) ``` 這個函數的重載[arg](qstring.html#arg)( ) 。 這是一樣的調用`str.arg(a1).arg(a2).arg(a3)`,除了字符串_a1_,_a2_和_a3_替換在一次通過。 ``` QString QString.arg (self, int?a, int?fieldWidth?=?0, int?base?=?10, QChar?fillChar?=?QLatin1Char(' ')) ``` 這個函數的重載[arg](qstring.html#arg)( ) 。 這是一樣的調用`str.arg(a1).arg(a2).arg(a3).arg(a4)`,除了字符串_a1_,_a2_,_a3_和_a4_替換在一次通過。 ``` QString QString.arg (self, QString?a, int?fieldWidth?=?0, QChar?fillChar?=?QLatin1Char(' ')) ``` 這個函數的重載[arg](qstring.html#arg)( ) 。 這是一樣的調用`str.arg(a1).arg(a2).arg(a3).arg(a4).arg(a5)`,除了字符串_a1_,_a2_,_a3_,_a4_和_a5_替換在一次通過。 ``` QString QString.arg (self, QString?a1, QString?a2) ``` 這個函數的重載[arg](qstring.html#arg)( ) 。 這是一樣的調用`str.arg(a1).arg(a2).arg(a3).arg(a4).arg(a5).arg(a6))`,除了字符串_a1_,_a2_,_a3_,_a4_,_a5_和_a6_替換在一次通過。 ``` QString QString.arg (self, QString?a1, QString?a2, QString?a3) ``` 這個函數的重載[arg](qstring.html#arg)( ) 。 這是一樣的調用`str.arg(a1).arg(a2).arg(a3).arg(a4).arg(a5).arg(a6).arg(a7)`,除了字符串_a1_,_a2_,_a3_,_a4_,_a5_,_a6_和_a7_替換在一次通過。 ``` QString QString.arg (self, QString?a1, QString?a2, QString?a3, QString?a4) ``` 這個函數的重載[arg](qstring.html#arg)( ) 。 這是一樣的調用`str.arg(a1).arg(a2).arg(a3).arg(a4).arg(a5).arg(a6).arg(a7).arg(a8)`,除了字符串_a1_,_a2_,_a3_,_a4_,_a5_,_a6_,_a7_和_a8_替換在一次通過。 ``` QString QString.arg (self, QString?a1, QString?a2, QString?a3, QString?a4, QString?a5) ``` 這個函數的重載[arg](qstring.html#arg)( ) 。 這是一樣的調用`str.arg(a1).arg(a2).arg(a3).arg(a4).arg(a5).arg(a6).arg(a7).arg(a8).arg(a9)`,除了字符串_a1_,_a2_,_a3_,_a4_,_a5_,_a6_,_a7_,_a8_和_a9_替換在一次通過。 ``` QString QString.arg (self, QString?a1, QString?a2, QString?a3, QString?a4, QString?a5, QString?a6) ``` 這個函數的重載[arg](qstring.html#arg)( ) 。 該_a_參數表現在基礎_base_,它默認為10 ,并且必須在2到36之間。對于基礎不是10 ,_a_被視為一個無符號整數。 _fieldWidth_指定空間的最低金額_a_被填充到與填充有字符_fillChar_。正值產生右對齊文本,負值產生左對齊的文本。 的'%'可以跟隨一個“L” ,在這種情況下,序列被替換的局部表示_a_。該轉換使用默認的語言環境,通過設置[QLocale.setDefault](qlocale.html#setDefault)( ) 。如果沒有指定默認的語言環境中,“ C”語言環境使用。在“L”標志將被忽略,如果_base_是不是10 。 ``` [QString](qstring.html) str; str = [QString](qstring.html)("Decimal 63 is %1 in hexadecimal") .arg(63, 0, 16); // str == "Decimal 63 is 3f in hexadecimal" [QLocale](qlocale.html).setDefault([QLocale](qlocale.html)([QLocale](qlocale.html).English, [QLocale](qlocale.html).UnitedStates)); str = [QString](qstring.html)("%1 %L2 %L3") .arg(12345) .arg(12345) .arg(12345, 0, 16); // str == "12345 12,345 3039" ``` If _fillChar_是'0' (數字0, ASCII碼48 ) ,語言環境的零被使用。對于負數,零填充可能會在減號前出現。 ``` QString QString.arg (self, QString?a1, QString?a2, QString?a3, QString?a4, QString?a5, QString?a6, QString?a7) ``` 這個函數的重載[arg](qstring.html#arg)( ) 。 該_base_參數指定的基數換算整數時使用_a_成一個字符串。所述堿必須具有2和36之間。 If _fillChar_是'0' (數字0, ASCII碼48 ) ,語言環境的零被使用。對于負數,零填充可能會在減號前出現。 ``` QString QString.arg (self, QString?a1, QString?a2, QString?a3, QString?a4, QString?a5, QString?a6, QString?a7, QString?a8) ``` 這個函數的重載[arg](qstring.html#arg)( ) 。 _fieldWidth_指定空間的最低金額_a_被填充到與填充有字符_fillChar_。正值產生右對齊文本,負值產生左對齊的文本。 該_a_參數表示在給定的_base_,它默認為10 ,并且必須在2到36之間。 的'%'可以跟隨一個“L” ,在這種情況下,序列被替換的局部表示_a_。轉換使用默認的語言環境。默認的區域是從應用程序啟動時系統的區域設置決定。它可以通過改變[QLocale.setDefault](qlocale.html#setDefault)( ) 。在“L”標志將被忽略,如果_base_是不是10 。 ``` [QString](qstring.html) str; str = [QString](qstring.html)("Decimal 63 is %1 in hexadecimal") .arg(63, 0, 16); // str == "Decimal 63 is 3f in hexadecimal" [QLocale](qlocale.html).setDefault([QLocale](qlocale.html)([QLocale](qlocale.html).English, [QLocale](qlocale.html).UnitedStates)); str = [QString](qstring.html)("%1 %L2 %L3") .arg(12345) .arg(12345) .arg(12345, 0, 16); // str == "12345 12,345 3039" ``` If _fillChar_是'0' (數字0, ASCII碼48 ) ,語言環境的零被使用。對于負數,零填充可能會在減號前出現。 ``` QString QString.arg (self, QString?a1, QString?a2, QString?a3, QString?a4, QString?a5, QString?a6, QString?a7, QString?a8, QString?a9) ``` 這個函數的重載[arg](qstring.html#arg)( ) 。 _fieldWidth_指定空間的最低金額_a_被填充到與填充有字符_fillChar_。正值產生右對齊文本,負值產生左對齊的文本。 該_base_參數指定的基數換算整數時使用_a_為一個字符串。該基地必須是2和36之間,給予8進制, 10進制和16進制數。 If _fillChar_是'0' (數字0, ASCII碼48 ) ,語言環境的零被使用。對于負數,零填充可能會在減號前出現。 ``` QChar QString.at (self, int?i) ``` 返回字符的給定索引處_position_在字符串中。 該_position_必須是在字符串中的有效索引位置(即0 \u003c =_position_\u003c[size](qstring.html#size)())。 **See also** [operator[]](qstring.html#operator-5b-5d)( ) 。 ``` int QString.capacity (self) ``` 返回可以存儲在字符串中不強制重新分配的字符的最大數目。 此函數的唯一目的是提供微調的手段[QString](qstring.html)的內存使用情況。一般情況下,你很少會需要調用這個函數。如果你想知道有多少字符是字符串,調用[size](qstring.html#size)( ) 。 **See also** [reserve](qstring.html#reserve)()和[squeeze](qstring.html#squeeze)( ) 。 ``` QString.chop (self, int?n) ``` 移除_n_字符從字符串的結尾。 If _n_大于[size](qstring.html#size)( ) ,結果是空字符串。 例如: ``` [QString](qstring.html) str("LOGOUT\r\n"); str.chop(2); // str == "LOGOUT" ``` 如果你想從刪除的字符_beginning_的字符串,使用[remove](qstring.html#remove)( )來代替。 **See also** [truncate](qstring.html#truncate)( )[resize](qstring.html#resize)()和[remove](qstring.html#remove)( ) 。 ``` QString.clear (self) ``` 清除字符串的內容,并使其為空。 **See also** [resize](qstring.html#resize)() and [isEmpty](qstring.html#isEmpty)(). ``` int QString.compare (self, QString?s) ``` 比較_s1_同_s2_并返回一個整數大于零小于,等于,或大于,如果_s1_小于,等于或大于_s2_。 If _cs_ is [Qt.CaseSensitive](qt.html#CaseSensitivity-enum),比較是區分大小寫的,否則比較不區分大小寫。 區分大小寫的比較是完全基于字符的數值Unicode值和速度非常快,但不是什么人期望的那樣。考慮與分揀用戶可見的字符串[localeAwareCompare](qstring.html#localeAwareCompare)( ) 。 ``` int x = [QString](qstring.html).compare("aUtO", "AuTo", [Qt](qt.html).CaseInsensitive); // x == 0 int y = [QString](qstring.html).compare("auto", "Car", [Qt](qt.html).CaseSensitive); // y > 0 int z = [QString](qstring.html).compare("auto", "Car", [Qt](qt.html).CaseInsensitive); // z < 0 ``` 這個函數中引入了Qt 4.2中。 **See also** [operator==](qstring.html#operator-eq-eq)( )[operator&lt;](qstring.html#operator-lt)()和[operator&gt;](qstring.html#operator-gt)( ) 。 ``` int QString.compare (self, QString?s, Qt.CaseSensitivity?cs) ``` 這個函數的重載[compare](qstring.html#compare)( ) 。 執行敏感的比較情況_s1_和_s2_。 ``` int QString.compare (self, QLatin1String?other, Qt.CaseSensitivity?cs?=?Qt.CaseSensitive) ``` 這個函數的重載[compare](qstring.html#compare)( ) 。 執行的比較_s1_和_s2_使用區分大小寫設置_cs_。 這個函數中引入了Qt 4.2中。 ``` int QString.compare (self, QStringRef?ref, Qt.CaseSensitivity?cs?=?Qt.CaseSensitive) ``` 這個函數的重載[compare](qstring.html#compare)( ) 。 執行的比較_s1_和_s2_使用區分大小寫設置_cs_。 這個函數中引入了Qt 4.2中。 ``` int QString.compare (QString?s1, QString?s2) ``` 這個函數的重載[compare](qstring.html#compare)( ) 。 詞匯與比較此字符串_other_字符串并返回比,等于大于零的整數更少,或更大,如果該字符串是比其他字符串小于,等于,或更大。 相當于`compare(*this, other)`。 ``` int QString.compare (QString?s1, QString?s2, Qt.CaseSensitivity?cs) ``` 這個函數的重載[compare](qstring.html#compare)( ) 。 同樣作為比較( *此,_other_,_cs_) 。 這個函數中引入了Qt 4.2中。 ``` int QString.compare (QString?s1, QLatin1String?s2, Qt.CaseSensitivity?cs?=?Qt.CaseSensitive) ``` 這個函數的重載[compare](qstring.html#compare)( ) 。 同樣作為比較( *此,_other_,_cs_) 。 這個函數中引入了Qt 4.2中。 ``` int QString.compare (QLatin1String?s1, QString?s2, Qt.CaseSensitivity?cs?=?Qt.CaseSensitive) ``` 這個函數的重載[compare](qstring.html#compare)( ) 。 比較字符串引用,_ref_與字符串并返回比,等于大于零的整數更少,或更大,如果該字符串是小于,等于或大于_ref_。 ``` int QString.compare (QString?s1, QStringRef?s2, Qt.CaseSensitivity?cs?=?Qt.CaseSensitive) ``` 這個函數的重載[compare](qstring.html#compare)( ) 。 ``` bool QString.contains (self, QString?str, Qt.CaseSensitivity?cs?=?Qt.CaseSensitive) ``` 如果此字符串包含字符串的出現,則返回True_str_否則返回False 。 If _cs_ is [Qt.CaseSensitive](qt.html#CaseSensitivity-enum)(默認) ,搜索是區分大小寫的,否則搜索不區分大小寫。 例如: ``` [QString](qstring.html) str = "Peter Pan"; str.contains("peter", [Qt](qt.html).CaseInsensitive); // returns true ``` **See also** [indexOf](qstring.html#indexOf)()和[count](qstring.html#count)( ) 。 ``` bool QString.contains (self, QStringRef?s, Qt.CaseSensitivity?cs?=?Qt.CaseSensitive) ``` 如果這個字符串包含的字符串引用的出現,則返回True_str_否則返回False 。 If _cs_ is [Qt.CaseSensitive](qt.html#CaseSensitivity-enum)(默認) ,搜索是區分大小寫的,否則搜索不區分大小寫。 此功能被引入Qt的4.8 。 **See also** [indexOf](qstring.html#indexOf)()和[count](qstring.html#count)( ) 。 ``` bool QString.contains (self, QRegExp?rx) ``` ``` int QString.count (self) ``` 返回(可能重疊)字符串的出現次數_str_在此字符串。 If _cs_ is [Qt.CaseSensitive](qt.html#CaseSensitivity-enum)(默認) ,搜索是區分大小寫的,否則搜索不區分大小寫。 **See also** [contains](qstring.html#contains)()和[indexOf](qstring.html#indexOf)( ) 。 ``` int QString.count (self, QString?str, Qt.CaseSensitivity?cs?=?Qt.CaseSensitive) ``` 這個函數的重載[count](qstring.html#count)( ) 。 返回事件字符的數目_ch_在字符串中。 ``` int QString.count (self, QStringRef?str, Qt.CaseSensitivity?cs?=?Qt.CaseSensitive) ``` 這個函數的重載[count](qstring.html#count)( ) 。 返回(可能重疊)出現的字符串引用數_str_在此字符串。 If _cs_ is [Qt.CaseSensitive](qt.html#CaseSensitivity-enum)(默認) ,搜索是區分大小寫的,否則搜索不區分大小寫。 此功能被引入Qt的4.8 。 **See also** [contains](qstring.html#contains)()和[indexOf](qstring.html#indexOf)( ) 。 ``` int QString.count (self, QRegExp) ``` 這個函數的重載[count](qstring.html#count)( ) 。 返回的次數的正則表達式_rx_匹配字符串中。 此函數計算重疊的匹配,所以在下面的例子中,有“模擬”或“ AMA”的四個實例: ``` [QString](qstring.html) str = "banana and panama"; str.count([QRegExp](qregexp.html)("a[nm]a")); // returns 4 ``` ``` bool QString.endsWith (self, QString?s, Qt.CaseSensitivity?cs?=?Qt.CaseSensitive) ``` 如果字符串結尾,則返回True_s_否則返回False 。 If _cs_ is [Qt.CaseSensitive](qt.html#CaseSensitivity-enum)(默認) ,搜索是區分大小寫的,否則搜索不區分大小寫。 ``` [QString](qstring.html) str = "Bananas"; str.endsWith("anas"); // returns true str.endsWith("pple"); // returns false ``` **See also** [startsWith](qstring.html#startsWith)( ) 。 ``` bool QString.endsWith (self, QStringRef?s, Qt.CaseSensitivity?cs?=?Qt.CaseSensitive) ``` ``` bool QString.endsWith (self, QLatin1String?s, Qt.CaseSensitivity?cs?=?Qt.CaseSensitive) ``` 這個函數的重載[endsWith](qstring.html#endsWith)( ) 。 如果字符串的字符串引用結束,則返回True_s_否則返回False 。 If _cs_ is [Qt.CaseSensitive](qt.html#CaseSensitivity-enum)(默認) ,搜索是區分大小寫的,否則搜索不區分大小寫。 此功能被引入Qt的4.8 。 **See also** [startsWith](qstring.html#startsWith)( ) 。 ``` QString QString.fill (self, QChar?ch, int?size?=?-1) ``` 設置每個字符的字符串中的字符_ch_。如果_size_是從-1 (默認值)不同,該字符串被調整為_size_事前。 例如: ``` [QString](qstring.html) str = "Berlin"; str.fill('z'); // str == "zzzzzz" str.fill('A', 2); // str == "AA" ``` **See also** [resize](qstring.html#resize)( ) 。 ``` QString QString.fromAscii (str?str, int?size?=?-1) ``` 返回[QString](qstring.html)與第一次初始化_size_從字符串中的字符_str_。 If _size_為-1 (默認值) ,它被視為于qstrlen (_str_) 。 需要注意的是,盡管這個名字,這個功能實際上是通過使用定義的編碼解碼器[QTextCodec.setCodecForCStrings](qtextcodec.html#setCodecForCStrings)( )來轉換_str_為Unicode。取決于編解碼器,它可能不接受有效的US-ASCII (ANSI X3.4 - 1986)的輸入。如果沒有編解碼器已經設置,這個函數一樣[fromLatin1](qstring.html#fromLatin1)( ) 。 **See also** [toAscii](qstring.html#toAscii)( )[fromLatin1](qstring.html#fromLatin1)( )[fromUtf8](qstring.html#fromUtf8)()和[fromLocal8Bit](qstring.html#fromLocal8Bit)( ) 。 ``` QString QString.fromLatin1 (str?str, int?size?=?-1) ``` 返回[QString](qstring.html)與第一次初始化_size_拉丁- 1字符串的字符_str_。 If _size_為-1 (默認值) ,它被視為于qstrlen (_str_) 。 **See also** [toLatin1](qstring.html#toLatin1)( )[fromAscii](qstring.html#fromAscii)( )[fromUtf8](qstring.html#fromUtf8)()和[fromLocal8Bit](qstring.html#fromLocal8Bit)( ) 。 ``` QString QString.fromLocal8Bit (str?str, int?size?=?-1) ``` 返回[QString](qstring.html)與第一次初始化_size_8位字符串的字符_str_。 If _size_為-1 (默認值) ,它被視為于qstrlen (_str_) 。 [QTextCodec.codecForLocale](qtextcodec.html#codecForLocale)( )是用來執行轉換。 **See also** [toLocal8Bit](qstring.html#toLocal8Bit)( )[fromAscii](qstring.html#fromAscii)( )[fromLatin1](qstring.html#fromLatin1)()和[fromUtf8](qstring.html#fromUtf8)( ) 。 ``` QString QString.fromUtf8 (str?str, int?size?=?-1) ``` 返回[QString](qstring.html)與第一次初始化_size_在UTF-8字符串的字節_str_。 If _size_為-1 (默認值) ,它被視為于qstrlen (_str_) 。 UTF - 8是Unicode編碼,可以表示所有字符的Unicode字符串像[QString](qstring.html)。然而,無效的序列是可以使用UTF -8和,如果有這樣的發現,他們將被替換為一個或多個“替換字符” ,或抑制。這些包括非Unicode序列,非字符,過長的序列或編碼成UTF-8代碼點。 非字符碼點是Unicode標準的儲備,不能在文本交換使用。他們在每一個Unicode平面( U + FFFE , U + FFFF , U +1 FFFE , U +1 FFFF , U +2 FFFE等) ,以及16碼點在范圍U + FDD0 .. U +最后兩個代碼點FDDF ,包容性。 **See also** [toUtf8](qstring.html#toUtf8)( )[fromAscii](qstring.html#fromAscii)( )[fromLatin1](qstring.html#fromLatin1)()和[fromLocal8Bit](qstring.html#fromLocal8Bit)( ) 。 ``` int QString.indexOf (self, QString?str, int?from?=?0, Qt.CaseSensitivity?cs?=?Qt.CaseSensitive) ``` 返回字符串中第一次出現的索引位置_str_在這個字符串,搜索著從索引位置_from_。返回-1,如果_str_是沒有找到。 If _cs_ is [Qt.CaseSensitive](qt.html#CaseSensitivity-enum)(默認) ,搜索是區分大小寫的,否則搜索不區分大小寫。 例如: ``` [QString](qstring.html) x = "sticky question"; [QString](qstring.html) y = "sti"; x.indexOf(y); // returns 0 x.indexOf(y, 1); // returns 10 x.indexOf(y, 10); // returns 10 x.indexOf(y, 11); // returns -1 ``` If _from_為-1,搜索從最后一個字符,如果是-2 ,在倒數第二個字符等等。 **See also** [lastIndexOf](qstring.html#lastIndexOf)( )[contains](qstring.html#contains)()和[count](qstring.html#count)( ) 。 ``` int QString.indexOf (self, QStringRef?str, int?from?=?0, Qt.CaseSensitivity?cs?=?Qt.CaseSensitive) ``` 返回字符串中第一次出現的索引位置_str_在這個字符串,搜索著從索引位置_from_。返回-1,如果_str_是沒有找到。 If _cs_ is [Qt.CaseSensitive](qt.html#CaseSensitivity-enum)(默認) ,搜索是區分大小寫的,否則搜索不區分大小寫。 例如: ``` [QString](qstring.html) x = "sticky question"; [QString](qstring.html) y = "sti"; x.indexOf(y); // returns 0 x.indexOf(y, 1); // returns 10 x.indexOf(y, 10); // returns 10 x.indexOf(y, 11); // returns -1 ``` If _from_為-1,搜索從最后一個字符,如果是-2 ,在倒數第二個字符等等。 此功能被引入Qt的4.5 。 **See also** [lastIndexOf](qstring.html#lastIndexOf)( )[contains](qstring.html#contains)()和[count](qstring.html#count)( ) 。 ``` int QString.indexOf (self, QLatin1String?str, int?from?=?0, Qt.CaseSensitivity?cs?=?Qt.CaseSensitive) ``` 這個函數的重載[indexOf](qstring.html#indexOf)( ) 。 返回字符的第一個匹配項的索引位置_ch_在字符串中,尋找著從索引位置_from_。返回-1,如果_ch_找不到。 ``` int QString.indexOf (self, QRegExp?rx, int?from?=?0) ``` 這個函數的重載[indexOf](qstring.html#indexOf)( ) 。 返回的字符串引用中第一次出現的索引位置_str_在這個字符串,搜索著從索引位置_from_。返回-1,如果_str_是沒有找到。 If _cs_ is [Qt.CaseSensitive](qt.html#CaseSensitivity-enum)(默認) ,搜索是區分大小寫的,否則搜索不區分大小寫。 此功能被引入Qt的4.8 。 ``` QString QString.insert (self, int?i, QString?s) ``` 插入字符串_str_給定索引處_position_并返回一個引用這個字符串。 例如: ``` [QString](qstring.html) str = "Meal"; str.insert(1, [QString](qstring.html)("ontr")); // str == "Montreal" ``` 如果給定的_position_大于[size](qstring.html#size)() ,該陣列是第一,采用擴展[resize](qstring.html#resize)( ) 。 **See also** [append](qstring.html#append)( )[prepend](qstring.html#prepend)( )[replace](qstring.html#replace)()和[remove](qstring.html#remove)( ) 。 ``` QString QString.insert (self, int?i, QLatin1String?s) ``` 這個函數的重載[insert](qstring.html#insert)( ) 。 插入Latin-1的字符串_str_給定索引處_position_。 ``` bool QString.isEmpty (self) ``` 返回True如果該字符串沒有字符,否則返回False 。 例如: ``` [QString](qstring.html)().isEmpty(); // returns true [QString](qstring.html)("").isEmpty(); // returns true [QString](qstring.html)("x").isEmpty(); // returns false [QString](qstring.html)("abc").isEmpty(); // returns false ``` **See also** [size](qstring.html#size)( ) 。 ``` bool QString.isNull (self) ``` 返回True如果該字符串為null ,否則返回False 。 例如: ``` [QString](qstring.html)().isNull(); // returns true [QString](qstring.html)("").isNull(); // returns false [QString](qstring.html)("abc").isNull(); // returns false ``` Qt后,由于歷史原因,空字符串和空字符串之間的區別。對于大多數應用來說,重要的是一個字符串是否包含任何數據,這可以通過將所確定的[isEmpty](qstring.html#isEmpty)()函數。 **See also** [isEmpty](qstring.html#isEmpty)( ) 。 ``` bool QString.isRightToLeft (self) ``` 返回True如果該字符串讀取從右到左。 ``` bool QString.isSimpleText (self) ``` ``` int QString.lastIndexOf (self, QString?str, int?from?=?-1, Qt.CaseSensitivity?cs?=?Qt.CaseSensitive) ``` 返回字符串中最后一次出現的索引位置_str_在這個字符串,從索引位置向后搜索_from_。如果_from_為-1 (默認),搜索從最后一個字符,如果_from_為-2 ,在旁邊的最后一個字符等等。返回-1,如果_str_是沒有找到。 If _cs_ is [Qt.CaseSensitive](qt.html#CaseSensitivity-enum)(默認) ,搜索是區分大小寫的,否則搜索不區分大小寫。 例如: ``` [QString](qstring.html) x = "crazy azimuths"; [QString](qstring.html) y = "az"; x.lastIndexOf(y); // returns 6 x.lastIndexOf(y, 6); // returns 6 x.lastIndexOf(y, 5); // returns 2 x.lastIndexOf(y, 1); // returns -1 ``` **See also** [indexOf](qstring.html#indexOf)( )[contains](qstring.html#contains)()和[count](qstring.html#count)( ) 。 ``` int QString.lastIndexOf (self, QStringRef?str, int?from?=?-1, Qt.CaseSensitivity?cs?=?Qt.CaseSensitive) ``` 這個函數的重載[lastIndexOf](qstring.html#lastIndexOf)( ) 。 返回字符串中最后一次出現的索引位置_str_在這個字符串,從索引位置向后搜索_from_。如果_from_為-1 (默認),搜索從最后一個字符,如果_from_為-2 ,在倒數第二個字符等等。返回-1,如果_str_是沒有找到。 If _cs_ is [Qt.CaseSensitive](qt.html#CaseSensitivity-enum)(默認) ,搜索是區分大小寫的,否則搜索不區分大小寫。 例如: ``` [QString](qstring.html) x = "crazy azimuths"; [QString](qstring.html) y = "az"; x.lastIndexOf(y); // returns 6 x.lastIndexOf(y, 6); // returns 6 x.lastIndexOf(y, 5); // returns 2 x.lastIndexOf(y, 1); // returns -1 ``` 此功能被引入Qt的4.5 。 **See also** [indexOf](qstring.html#indexOf)( )[contains](qstring.html#contains)()和[count](qstring.html#count)( ) 。 ``` int QString.lastIndexOf (self, QLatin1String?str, int?from?=?-1, Qt.CaseSensitivity?cs?=?Qt.CaseSensitive) ``` 這個函數的重載[lastIndexOf](qstring.html#lastIndexOf)( ) 。 返回字符的最后一個匹配項的索引位置_ch_從位置向后搜索_from_。 ``` int QString.lastIndexOf (self, QRegExp?rx, int?from?=?-1) ``` 這個函數的重載[lastIndexOf](qstring.html#lastIndexOf)( ) 。 返回的字符串引用的最后一個匹配項的索引位置_str_在這個字符串,從索引位置向后搜索_from_。如果_from_為-1 (默認),搜索從最后一個字符,如果_from_為-2 ,在倒數第二個字符等等。返回-1,如果_str_是沒有找到。 If _cs_ is [Qt.CaseSensitive](qt.html#CaseSensitivity-enum)(默認) ,搜索是區分大小寫的,否則搜索不區分大小寫。 此功能被引入Qt的4.8 。 **See also** [indexOf](qstring.html#indexOf)( )[contains](qstring.html#contains)()和[count](qstring.html#count)( ) 。 ``` QString QString.left (self, int?len) ``` 返回包含一個子串的_n_字符串最左邊的字符。 如果整個字符串被返回_n_大于[size](qstring.html#size)()或小于零。 ``` [QString](qstring.html) x = "Pineapple"; [QString](qstring.html) y = x.left(4); // y == "Pine" ``` **See also** [right](qstring.html#right)( )[mid](qstring.html#mid)()和[startsWith](qstring.html#startsWith)( ) 。 ``` QString QString.leftJustified (self, int?width, QChar?fillChar?=?QLatin1Char(' '), bool?truncate?=?False) ``` 返回大小的字符串_width_包含該字符串被填充_fill_字符。 If _truncate_是假的而[size](qstring.html#size)字符串( )大于_width_,那么返回的字符串是字符串的一個副本。 ``` [QString](qstring.html) s = "apple"; [QString](qstring.html) t = s.leftJustified(8, '.'); // t == "apple..." ``` If _truncate_是真實的[size](qstring.html#size)字符串( )大于_width_,然后在字符串的位置后,副本的任何字符_width_被刪除,并且該副本被返回。 ``` [QString](qstring.html) str = "Pineapple"; str = str.leftJustified(5, '.', true); // str == "Pinea" ``` **See also** [rightJustified](qstring.html#rightJustified)( ) 。 ``` int QString.length (self) ``` 返回此字符串中的字符數。相當于[size](qstring.html#size)( ) 。 **See also** [setLength](index.htm#setLength)()和[resize](qstring.html#resize)( ) 。 ``` int QString.localeAwareCompare (self, QString?s) ``` 比較_s1_同_s2_并返回一個整數大于零小于,等于,或大于,如果_s1_小于,等于或大于_s2_。 比較是在一個語言環境,也依賴于平臺的方式進行。使用此功能可呈現字符串排序的列表給用戶。 自從上的Qt 4.3的Mac OS X ,此功能根據“訂單的排序列表”,在國際prefereces面板設置進行比較。 **See also** [compare](qstring.html#compare)()和[QTextCodec.locale](index.htm#locale)( ) 。 ``` int QString.localeAwareCompare (self, QStringRef?s) ``` 這個函數的重載[localeAwareCompare](qstring.html#localeAwareCompare)( ) 。 比較此字符串與_other_字符串并返回比,等于大于零的整數更少,或更大,如果該字符串比小于,等于,或大于_other_字符串。 比較是在一個語言環境,也依賴于平臺的方式進行。使用此功能可呈現字符串排序的列表給用戶。 同`localeAwareCompare(*this, other)`。 此功能被引入Qt的4.5 。 ``` int QString.localeAwareCompare (QString?s1, QString?s2) ``` 這個函數的重載[localeAwareCompare](qstring.html#localeAwareCompare)( ) 。 比較_s1_同_s2_并返回一個整數大于零小于,等于,或大于,如果_s1_小于,等于或大于_s2_。 比較是在一個語言環境,也依賴于平臺的方式進行。使用此功能可呈現字符串排序的列表給用戶。 此功能被引入Qt的4.5 。 ``` int QString.localeAwareCompare (QString?s1, QStringRef?s2) ``` 這個函數的重載[localeAwareCompare](qstring.html#localeAwareCompare)( ) 。 比較此字符串與_other_字符串并返回比,等于大于零的整數更少,或更大,如果該字符串比小于,等于,或大于_other_字符串。 比較是在一個語言環境,也依賴于平臺的方式進行。使用此功能可呈現字符串排序的列表給用戶。 同`localeAwareCompare(*this, other)`。 ``` QString QString.mid (self, int?position, int?n?=?-1) ``` 返回包含一個字符串_n_這串字符,起始于指定_position_索引。 返回一個空字符串,如果_position_索引超出了字符串的長度。如果有小于_n_從給定的字符串中的字符_position_,或者如果_n_為-1 (默認) ,該函數返回,可從指定的所有字符_position_。 例如: ``` [QString](qstring.html) x = "Nine pineapples"; [QString](qstring.html) y = x.mid(5, 4); // y == "pine" [QString](qstring.html) z = x.mid(5); // z == "pineapples" ``` **See also** [left](qstring.html#left)()和[right](qstring.html#right)( ) 。 ``` QString QString.normalized (self, NormalizationForm?mode) ``` 返回字符串中給定的Unicode范式_mode_。 ``` QString QString.normalized (self, NormalizationForm?mode, QChar.UnicodeVersion?version) ``` 這是一個重載函數。 返回字符串中給定的Unicode范式_mode_,根據給定的_version_的Unicode標準。 ``` QString QString.number (int?n, int?base?=?10) ``` 返回一個當量數的串_n_根據指定的_base_。 該基地默認為10 ,并且必須在2到36之間。對于基礎不是10 ,_n_被視為一個無符號整數。 ``` long a = 63; [QString](qstring.html) s = [QString](qstring.html).number(a, 16); // s == "3f" [QString](qstring.html) t = [QString](qstring.html).number(a, 16).toUpper(); // t == "3F" ``` **See also** [setNum](qstring.html#setNum)( ) 。 ``` QString QString.number (float?n, str?format?=?'g', int?precision?=?6) ``` 返回一個當量數的串_n_,根據指定的格式_format_和_precision_。看[Argument Formats](qstring.html#argument-formats)了解詳情。 不像[QLocale.toString](qlocale.html#toString)( ) ,這個函數不尊重用戶的區域設置。 **See also** [setNum](qstring.html#setNum)()和[QLocale.toString](qlocale.html#toString)( ) 。 ``` QString QString.number (int?n, int?base?=?10) ``` 這是一個重載函數。 ``` QString QString.number (int?n, int?base?=?10) ``` 這是一個重載函數。 ``` QString QString.prepend (self, QString?s) ``` 預先考慮字符串_str_這個字符串的開頭,并返回一個引用這個字符串。 例如: ``` [QString](qstring.html) x = "ship"; [QString](qstring.html) y = "air"; x.prepend(y); // x == "airship" ``` **See also** [append](qstring.html#append)()和[insert](qstring.html#insert)( ) 。 ``` QString QString.prepend (self, QLatin1String?s) ``` 這個函數的重載[prepend](qstring.html#prepend)( ) 。 預先考慮Latin-1的字符串_str_這個字符串。 ``` QString QString.prepend (self, QByteArray?s) ``` 這個函數的重載[prepend](qstring.html#prepend)( ) 。 預先考慮字節數組_ba_這個字符串。字節數組是使用轉換為Unicode[fromAscii](qstring.html#fromAscii)()函數。 您可以通過定義關閉此功能`QT_NO_CAST_FROM_ASCII`當您編譯您的應用程序。如果你想確保所有用戶可見的字符串經過這可能是有用的[QObject.tr](qobject.html#tr)() ,例如。 ``` QString.push_back (self, QString?s) ``` 此功能提供了STL的兼容性,附加給定的_other_串到這個字符串的結尾。它相當于`append(other)`。 **See also** [append](qstring.html#append)( ) 。 ``` QString.push_front (self, QString?s) ``` 此功能提供了STL的兼容性,前面加上給定的_other_字符串此字符串的開頭。它相當于`prepend(other)`。 **See also** [prepend](qstring.html#prepend)( ) 。 ``` QString QString.remove (self, int?i, int?len) ``` 移除_n_從字符串中的字符,開始于指定的_position_索引,并返回一個引用的字符串。 如果指定的_position_索引是字符串中,但_position_+_n_超出了字符串的結尾,字符串被截斷在指定_position_。 ``` [QString](qstring.html) s = "Montreal"; s.remove(1, 4); // s == "Meal" ``` **See also** [insert](qstring.html#insert)()和[replace](qstring.html#replace)( ) 。 ``` QString QString.remove (self, QString?str, Qt.CaseSensitivity?cs?=?Qt.CaseSensitive) ``` 刪除的字符每次出現_ch_在這個字符串,并返回一個引用這個字符串。 If _cs_ is [Qt.CaseSensitive](qt.html#CaseSensitivity-enum)(默認) ,搜索是區分大小寫的,否則搜索不區分大小寫。 例如: ``` [QString](qstring.html) t = "Ali Baba"; t.remove([QChar](qchar.html)('a'), [Qt](qt.html).CaseInsensitive); // t == "li Bb" ``` 這是相同的`replace(ch, "", cs)`。 **See also** [replace](qstring.html#replace)( ) 。 ``` QString QString.remove (self, QRegExp?rx) ``` 刪除給定的每次出現_str_字符串在此字符串中,并返回一個指向該字符串。 If _cs_ is [Qt.CaseSensitive](qt.html#CaseSensitivity-enum)(默認) ,搜索是區分大小寫的,否則搜索不區分大小寫。 這是相同的`replace(str, "", cs)`。 **See also** [replace](qstring.html#replace)( ) 。 ``` QString QString.repeated (self, int?times) ``` 返回此字符串的一個副本重復指定次數_times_。 If _times_小于1 ,則返回一個空字符串。 例如: ``` [QString](qstring.html) str("ab"); str.repeated(4); // returns "abababab" ``` 此功能被引入Qt的4.5 。 ``` QString QString.replace (self, int?i, int?len, QString?after) ``` 替換_n_字符開頭索引_position_與串_after_并返回一個引用這個字符串。 例如: ``` [QString](qstring.html) x = "Say yes!"; [QString](qstring.html) y = "no"; x.replace(4, 3, y); // x == "Say no!" ``` **See also** [insert](qstring.html#insert)()和[remove](qstring.html#remove)( ) 。 ``` QString QString.replace (self, QString?before, QString?after, Qt.CaseSensitivity?cs?=?Qt.CaseSensitive) ``` ``` QString QString.replace (self, QRegExp?rx, QString?after) ``` ``` QString QString.replace (self, QLatin1String?before, QLatin1String?after, Qt.CaseSensitivity?cs?=?Qt.CaseSensitive) ``` ``` QString QString.replace (self, QLatin1String?before, QString?after, Qt.CaseSensitivity?cs?=?Qt.CaseSensitive) ``` ``` QString QString.replace (self, QString?before, QLatin1String?after, Qt.CaseSensitivity?cs?=?Qt.CaseSensitive) ``` 這個函數的重載[replace](qstring.html#replace)( ) 。 替換_n_字符開頭索引_position_與第一_size_的字符[QChar](qchar.html)排列_unicode_并返回一個引用這個字符串。 ``` QString.reserve (self, int?asize) ``` 嘗試分配內存,至少_size_字符。如果你事先知道該字符串將有多大的話,你可以調用這個函數,如果你調整字符串的時候你很可能會獲得更好的性能。如果_size_是低估,會發生最壞的是,[QString](qstring.html)會有點慢。 此函數的唯一目的是提供微調的手段[QString](qstring.html)的內存使用情況。一般情況下,你很少會需要調用這個函數。如果你想改變字符串的大小,請致電[resize](qstring.html#resize)( ) 。 此功能對于需要建立一個長字符串,并希望避免反復重新分配代碼很有用。在這個例子中,我們要添加到字符串,直到某個條件為真,而且我們相當肯定,尺寸夠大,足以讓值得調用儲備( ) : ``` [QString](qstring.html) result; int maxSize; bool condition; [QChar](qchar.html) nextChar; result.reserve(maxSize); while (condition) result.append(nextChar); result.squeeze(); ``` **See also** [squeeze](qstring.html#squeeze)()和[capacity](qstring.html#capacity)( ) 。 ``` QString.resize (self, int?size) ``` 設置字符串的大小,以_size_字符。 If _size_大于該電流的大小,則該字符串被擴展以使其_size_字符長著多馀的字符添加到末尾。新的字符是未初始化的。 If _size_小于該電流的大小,字符被從端部除去。 例如: ``` [QString](qstring.html) s = "Hello world"; s.resize(5); // s == "Hello" s.resize(8); // s == "Hello???" (where ? stands for any character) ``` 如果你要追加一定數量的相同字符的字符串,請使用[operator+=](qstring.html#operator-2b-eq)()如下而非調整大小(): ``` [QString](qstring.html) t = "Hello"; t += [QString](qstring.html)(10, 'X'); // t == "HelloXXXXXXXXXX" ``` 如果你想使之達到一定的寬度擴大字符串,并填寫與特定字符的新陣地,用[leftJustified](qstring.html#leftJustified)( )函數: If _size_為負時,它相當于通過零。 ``` [QString](qstring.html) r = "Hello"; r = r.leftJustified(10, ' '); // r == "Hello " ``` **See also** [truncate](qstring.html#truncate)()和[reserve](qstring.html#reserve)( ) 。 ``` QString QString.right (self, int?len) ``` 返回包含一個子串的_n_字符串的最右邊的字符。 如果整個字符串被返回_n_大于[size](qstring.html#size)()或小于零。 ``` [QString](qstring.html) x = "Pineapple"; [QString](qstring.html) y = x.right(5); // y == "apple" ``` **See also** [left](qstring.html#left)( )[mid](qstring.html#mid)()和[endsWith](qstring.html#endsWith)( ) 。 ``` QString QString.rightJustified (self, int?width, QChar?fillChar?=?QLatin1Char(' '), bool?truncate?=?False) ``` 返回的字符串[size](qstring.html#size)( )_width_包含_fill_字符后面的字符串。例如: ``` [QString](qstring.html) s = "apple"; [QString](qstring.html) t = s.rightJustified(8, '.'); // t == "...apple" ``` If _truncate_是假的而[size](qstring.html#size)字符串( )大于_width_,那么返回的字符串是字符串的一個副本。 If _truncate_是真實的[size](qstring.html#size)字符串( )大于_width_,然后將得到的字符串被截斷位置_width_。 ``` [QString](qstring.html) str = "Pineapple"; str = str.rightJustified(5, '.', true); // str == "Pinea" ``` **See also** [leftJustified](qstring.html#leftJustified)( ) 。 ``` QString QString.section (self, QString?sep, int?start, int?end?=?-1, SectionFlags?flags?=?QString.SectionDefault) ``` 該函數返回字符串的一部分。 這個字符串被視為由字符分隔的字段的順序,_sep_。返回的字符串包含從位置字段_start_到位置_end_包容性。如果_end_沒有被指定,所有從位置字段_start_到字符串的末尾都包括在內。字段被編號為0 ,1,2 ,等等,從左邊算起,并從右至左-1,-2等,計數。 該_flags_參數可以被用來影響功能的行為的某些方面,例如是否區分大小寫,是否跳過空字段,以及如何處理與開頭和結尾的分隔符,見[SectionFlags](qstring.html#SectionFlag-enum)。 ``` [QString](qstring.html) str; [QString](qstring.html) csv = "forename,middlename,surname,phone"; [QString](qstring.html) path = "/usr/local/bin/myapp"; // First field is empty [QString](qstring.html).SectionFlag flag = [QString](qstring.html).SectionSkipEmpty; str = csv.section(',', 2, 2); // str == "surname" str = path.section('/', 3, 4); // str == "bin/myapp" str = path.section('/', 3, 3, flag); // str == "myapp" ``` If _start_ or _end_是負的,我們指望從字符串的右邊,最右邊的字段為-1 ,從最右邊的字段為-2之一,等等領域。 ``` str = csv.section(',', -3, -2); // str == "middlename,surname" str = path.section('/', -1); // str == "myapp" ``` **See also** [split](qstring.html#split)( ) 。 ``` QString QString.section (self, QRegExp?reg, int?start, int?end?=?-1, SectionFlags?flags?=?QString.SectionDefault) ``` 這個函數的重載[section](qstring.html#section)( ) 。 ``` [QString](qstring.html) str; [QString](qstring.html) data = "forename**middlename**surname**phone"; str = data.section("**", 2, 2); // str == "surname" str = data.section("**", -3, -2); // str == "middlename**surname" ``` **See also** [split](qstring.html#split)( ) 。 ``` QString QString.setNum (self, int?n, int?base?=?10) ``` 字符串設置為印刷價值_n_在指定的_base_,并返回一個引用的字符串。 該基地默認為10 ,并且必須在2到36之間。對于基礎不是10 ,_n_被視為一個無符號整數。 ``` [QString](qstring.html) str; str.setNum(1234); // str == "1234" ``` 格式化始終使用[QLocale.C](qlocale.html#Language-enum),即英語/ UnitedStates的。為了得到一些本地化的字符串表示形式,使用[QLocale.toString](qlocale.html#toString)( )用適當的語言環境。 ``` QString QString.setNum (self, float?n, str?format?=?'g', int?precision?=?6) ``` 這是一個重載函數。 ``` QString QString.setNum (self, int?n, int?base?=?10) ``` 這是一個重載函數。 ``` QString QString.setNum (self, int?n, int?base?=?10) ``` 這是一個重載函數。 ``` QString QString.simplified (self) ``` 返回已經從空白開始和結束時去除,并具有內部的空格用一個空格代替每個序列的字符串。 空白是指任何字符的[QChar.isSpace](qchar.html#isSpace)( )返回True 。這包括ASCII字符'\ T' ,為'\ n ',' \ V' , '\ F' , ' \ r '和' “ 。 例如: ``` [QString](qstring.html) str = " lots\t of\nwhitespace\r\n "; str = str.simplified(); // str == "lots of whitespace"; ``` **See also** [trimmed](qstring.html#trimmed)( ) 。 ``` int QString.size (self) ``` 返回此字符串中的字符數。 字符串中的最后一個字符的位置是大小( ) - 1 。另外,[QString](qstring.html)確保字符位置的大小( )總是'\ 0' ,這樣就可以使用的返回值[data](qstring.html#data)()和[constData](qstring.html#constData)()作為參數傳遞給該期待'\ 0'結尾的字符串函數。 例如: ``` [QString](qstring.html) str = "World"; int n = str.size(); // n == 5 str.data()[0]; // returns 'W' str.data()[4]; // returns 'd' str.data()[5]; // returns '\0' ``` **See also** [isEmpty](qstring.html#isEmpty)()和[resize](qstring.html#resize)( ) 。 ``` QStringList QString.split (self, QString?sep, SplitBehavior?behavior?=?QString.KeepEmptyParts, Qt.CaseSensitivity?cs?=?Qt.CaseSensitive) ``` 拆分字符串成子的地方_sep_發生,并返回這些字符串列表。如果_sep_不匹配的字符串中的任何位置,分割( )返回一個包含此字符串的單元素列表。 _cs_指定是否_sep_應不區分大小寫匹配的情況下,敏感或情況。 If _behavior_ is [QString.SkipEmptyParts](qstring.html#SplitBehavior-enum),空項不會出現在結果中。默認情況下,空項目保留。 例如: ``` [QString](qstring.html) str = "a,,b,c"; [QStringList](qstringlist.html) list1 = str.split(","); // list1: [ "a", "", "b", "c" ] [QStringList](qstringlist.html) list2 = str.split(",", [QString](qstring.html).SkipEmptyParts); // list2: [ "a", "b", "c" ] ``` **See also** [QStringList.join](qstringlist.html#join)()和[section](qstring.html#section)( ) 。 ``` QStringList QString.split (self, QRegExp?sep, SplitBehavior?behavior?=?QString.KeepEmptyParts) ``` 這是一個重載函數。 ``` QString.squeeze (self) ``` 釋放所有的內存并不需要存儲的字符數據。 此函數的唯一目的是提供微調的手段[QString](qstring.html)的內存使用情況。一般情況下,你很少會需要調用這個函數。 **See also** [reserve](qstring.html#reserve)() and [capacity](qstring.html#capacity)(). ``` bool QString.startsWith (self, QString?s, Qt.CaseSensitivity?cs?=?Qt.CaseSensitive) ``` 如果在字符串開頭,則返回True_s_否則返回False 。 If _cs_ is [Qt.CaseSensitive](qt.html#CaseSensitivity-enum)(默認) ,搜索是區分大小寫的,否則搜索不區分大小寫。 ``` [QString](qstring.html) str = "Bananas"; str.startsWith("Ban"); // returns true str.startsWith("Car"); // returns false ``` **See also** [endsWith](qstring.html#endsWith)( ) 。 ``` bool QString.startsWith (self, QStringRef?s, Qt.CaseSensitivity?cs?=?Qt.CaseSensitive) ``` ``` bool QString.startsWith (self, QLatin1String?s, Qt.CaseSensitivity?cs?=?Qt.CaseSensitive) ``` 這個函數的重載[startsWith](qstring.html#startsWith)( ) 。 ``` QString.swap (self, QString?other) ``` 掉期的字符串_other_與此字符串。這個操作是非常快的,而且永遠不會。 此功能被引入Qt的4.8 。 ``` QByteArray QString.toAscii (self) ``` [](qbytearray.html) [返回字符串的8位表示為](qbytearray.html)[QByteArray](qbytearray.html)。 如果一個編解碼器已使用設置[QTextCodec.setCodecForCStrings](qtextcodec.html#setCodecForCStrings)( ) ,它是用來為Unicode轉換為8位字符,否則這個函數一樣[toLatin1](qstring.html#toLatin1)( ) 。 需要注意的是,盡管這個名字,這個功能并不一定返回一個US-ASCII ( ANSI X3.4 - 1986)的字符串,其結果可能不是US-ASCII兼容。 **See also** [fromAscii](qstring.html#fromAscii)( )[toLatin1](qstring.html#toLatin1)( )[toUtf8](qstring.html#toUtf8)( )[toLocal8Bit](qstring.html#toLocal8Bit)()和[QTextCodec](qtextcodec.html)。 ``` QString QString.toCaseFolded (self) ``` 返回的情況下折疊的字符串相同。對于大多數的Unicode字符,這是相同的[toLower](qstring.html#toLower)( ) 。 ``` (float, bool?ok) QString.toDouble (self) ``` 返回字符串轉換為`double`值。 如果轉換失敗,則返回0.0 。 如果發生轉換錯誤,`*`_ok_設置為False ,否則`*`_ok_設置為True 。 ``` [QString](qstring.html) str = "1234.56"; double val = str.toDouble(); // val == 1234.56 ``` 各種字符串格式的浮點數可以轉換為double值: ``` bool ok; double d; d = [QString](qstring.html)( "1234.56e-02" ).toDouble(&ok); // ok == true, d == 12.3456 ``` 該函數試圖根據當前的語言環境來解釋的字符串。當前區域設置從系統中應用程序啟動時確定,可以通過調用改變[QLocale.setDefault](qlocale.html#setDefault)( ) 。如果字符串不能根據當前的locale解釋,該功能將在“ C”語言環境。 ``` [QLocale](qlocale.html).setDefault([QLocale](qlocale.html).C); d = [QString](qstring.html)( "1234,56" ).toDouble(&ok); // ok == false d = [QString](qstring.html)( "1234.56" ).toDouble(&ok); // ok == true, d == 1234.56 [QLocale](qlocale.html).setDefault([QLocale](qlocale.html).German); d = [QString](qstring.html)( "1234,56" ).toDouble(&ok); // ok == true, d == 1234.56 d = [QString](qstring.html)( "1234.56" ).toDouble(&ok); // ok == true, d == 1234.56 ``` 由于不同的地區小數點還有數千組分隔界限的模糊,這個函數不處理數千組分隔符。如果你需要轉換這些號碼,請參閱[QLocale.toDouble](qlocale.html#toDouble)( ) 。 ``` [QLocale](qlocale.html).setDefault([QLocale](qlocale.html).C); d = [QString](qstring.html)( "1234,56" ).toDouble(&ok); // ok == false ``` **See also** [number](qstring.html#number)( )[QLocale.setDefault](qlocale.html#setDefault)( )[QLocale.toDouble](qlocale.html#toDouble)()和[trimmed](qstring.html#trimmed)( ) 。 ``` (float, bool?ok) QString.toFloat (self) ``` 返回字符串轉換為`float`值。 如果發生轉換錯誤, *_ok_設置為False ,否則*_ok_設置為True 。如果轉換失敗,則返回0.0 。 例如: ``` [QString](qstring.html) str1 = "1234.56"; str1.toFloat(); // returns 1234.56 bool ok; [QString](qstring.html) str2 = "R2D2"; str2.toFloat(&ok); // returns 0.0, sets ok to false ``` **See also** [number](qstring.html#number)( )[toDouble](qstring.html#toDouble)()和[toInt](qstring.html#toInt)( ) 。 ``` (int, bool?ok) QString.toInt (self, int?base?=?10) ``` 返回字符串轉換為`int`使用基_base_,它默認為10 ,并且必須是2和36 ,或0之間。返回0,如果轉換失敗。 如果發生轉換錯誤, *_ok_設置為False ,否則*_ok_設置為True 。 If _base_為0時, C語言慣例是使用:如果字符串開頭的“0x ” ,基部16被使用;如果字符串以“ 0”時,基部8被使用,否則底座10被使用。 例如: ``` [QString](qstring.html) str = "FF"; bool ok; int hex = str.toInt(&ok, 16); // hex == 255, ok == true int dec = str.toInt(&ok, 10); // dec == 0, ok == false ``` **See also** [number](qstring.html#number)( )[toUInt](qstring.html#toUInt)()和[toDouble](qstring.html#toDouble)( ) 。 ``` QByteArray QString.toLatin1 (self) ``` [](qbytearray.html) [返回字符串的的Latin-1表示為](qbytearray.html)[QByteArray](qbytearray.html)。 返回的字節數組是不確定的,如果字符串包含非拉丁文字符。這些字符可以被抑制或問號代替。 **See also** [fromLatin1](qstring.html#fromLatin1)( )[toAscii](qstring.html#toAscii)( )[toUtf8](qstring.html#toUtf8)( )[toLocal8Bit](qstring.html#toLocal8Bit)()和[QTextCodec](qtextcodec.html)。 ``` QByteArray QString.toLocal8Bit (self) ``` [](qbytearray.html) [返回字符串作為當地8位表示](qbytearray.html)[QByteArray](qbytearray.html)。返回的字節數組是不確定的,如果該字符串包含不支持的本地8位編碼的字符。 [QTextCodec.codecForLocale](qtextcodec.html#codecForLocale)( )是用來從Unicode執行轉換。如果本地編碼不能確定,這個函數一樣[toLatin1](qstring.html#toLatin1)( ) 。 如果這個字符串包含不能在語言環境進行編碼的任何字符,返回的字節數組是不確定的。這些字符可以由另一被抑制或更換。 **See also** [fromLocal8Bit](qstring.html#fromLocal8Bit)( )[toAscii](qstring.html#toAscii)( )[toLatin1](qstring.html#toLatin1)( )[toUtf8](qstring.html#toUtf8)()和[QTextCodec](qtextcodec.html)。 ``` (int, bool?ok) QString.toLong (self, int?base?=?10) ``` 返回字符串轉換為`long`使用基_base_,它默認為10 ,并且必須是2和36 ,或0之間。返回0,如果轉換失敗。 如果發生轉換錯誤, *_ok_設置為False ,否則*_ok_設置為True 。 If _base_為0時, C語言慣例是使用:如果字符串開頭的“0x ” ,基部16被使用;如果字符串以“ 0”時,基部8被使用,否則底座10被使用。 例如: ``` [QString](qstring.html) str = "FF"; bool ok; long hex = str.toLong(&ok, 16); // hex == 255, ok == true long dec = str.toLong(&ok, 10); // dec == 0, ok == false ``` **See also** [number](qstring.html#number)( )[toULong](qstring.html#toULong)()和[toInt](qstring.html#toInt)( ) 。 ``` (int, bool?ok) QString.toLongLong (self, int?base?=?10) ``` 返回字符串轉換為`long long`使用基_base_,它默認為10 ,并且必須是2和36 ,或0之間。返回0,如果轉換失敗。 如果發生轉換錯誤, *_ok_設置為False ,否則*_ok_設置為True 。 If _base_為0時, C語言慣例是使用:如果字符串開頭的“0x ” ,基部16被使用;如果字符串以“ 0”時,基部8被使用,否則底座10被使用。 例如: ``` [QString](qstring.html) str = "FF"; bool ok; [long](index.htm#qint64-typedef) hex = str.toLongLong(&ok, 16); // hex == 255, ok == true [long](index.htm#qint64-typedef) dec = str.toLongLong(&ok, 10); // dec == 0, ok == false ``` **See also** [number](qstring.html#number)( )[toULongLong](qstring.html#toULongLong)()和[toInt](qstring.html#toInt)( ) 。 ``` QString QString.toLower (self) ``` 返回字符串的小寫形式的副本。 ``` [QString](qstring.html) str = "Qt by NOKIA"; str = str.toLower(); // str == "qt by nokia" ``` 的情況下轉換將總是發生在“C”語言環境。對于依賴于語言環境的情況下使用的折疊[QLocale.toLower](qlocale.html#toLower)( ) **See also** [toUpper](qstring.html#toUpper)()和[QLocale.toLower](qlocale.html#toLower)( ) 。 ``` (int, bool?ok) QString.toShort (self, int?base?=?10) ``` 返回字符串轉換為`short`使用基_base_,它默認為10 ,并且必須是2和36 ,或0之間。返回0,如果轉換失敗。 如果發生轉換錯誤, *_ok_設置為False ,否則*_ok_設置為True 。 If _base_為0時, C語言慣例是使用:如果字符串開頭的“0x ” ,基部16被使用;如果字符串以“ 0”時,基部8被使用,否則底座10被使用。 例如: ``` [QString](qstring.html) str = "FF"; bool ok; short hex = str.toShort(&ok, 16); // hex == 255, ok == true short dec = str.toShort(&ok, 10); // dec == 0, ok == false ``` **See also** [number](qstring.html#number)( )[toUShort](qstring.html#toUShort)()和[toInt](qstring.html#toInt)( ) 。 ``` (int, bool?ok) QString.toUInt (self, int?base?=?10) ``` 返回字符串轉換為`unsigned int`使用基_base_,它默認為10 ,并且必須是2和36 ,或0之間。返回0,如果轉換失敗。 如果發生轉換錯誤, *_ok_設置為False ,否則*_ok_設置為True 。 If _base_為0時, C語言慣例是使用:如果字符串開頭的“0x ” ,基部16被使用;如果字符串以“ 0”時,基部8被使用,否則底座10被使用。 例如: ``` [QString](qstring.html) str = "FF"; bool ok; [uint](index.htm#uint-typedef) hex = str.toUInt(&ok, 16); // hex == 255, ok == true [uint](index.htm#uint-typedef) dec = str.toUInt(&ok, 10); // dec == 0, ok == false ``` **See also** [number](qstring.html#number)()和[toInt](qstring.html#toInt)( ) 。 ``` (int, bool?ok) QString.toULong (self, int?base?=?10) ``` 返回字符串轉換為`unsigned long`使用基_base_,它默認為10 ,并且必須是2和36 ,或0之間。返回0,如果轉換失敗。 如果發生轉換錯誤, *_ok_設置為False ,否則*_ok_設置為True 。 If _base_為0時, C語言慣例是使用:如果字符串開頭的“0x ” ,基部16被使用;如果字符串以“ 0”時,基部8被使用,否則底座10被使用。 例如: ``` [QString](qstring.html) str = "FF"; bool ok; [ulong](index.htm#ulong-typedef) hex = str.toULong(&ok, 16); // hex == 255, ok == true [ulong](index.htm#ulong-typedef) dec = str.toULong(&ok, 10); // dec == 0, ok == false ``` **See also** [number](qstring.html#number)( ) 。 ``` (int, bool?ok) QString.toULongLong (self, int?base?=?10) ``` 返回字符串轉換為`unsigned long long`使用基_base_,它默認為10 ,并且必須是2和36 ,或0之間。返回0,如果轉換失敗。 如果發生轉換錯誤, *_ok_設置為False ,否則*_ok_設置為True 。 If _base_為0時, C語言慣例是使用:如果字符串開頭的“0x ” ,基部16被使用;如果字符串以“ 0”時,基部8被使用,否則底座10被使用。 例如: ``` [QString](qstring.html) str = "FF"; bool ok; [unsigned long](index.htm#quint64-typedef) hex = str.toULongLong(&ok, 16); // hex == 255, ok == true [unsigned long](index.htm#quint64-typedef) dec = str.toULongLong(&ok, 10); // dec == 0, ok == false ``` **See also** [number](qstring.html#number)()和[toLongLong](qstring.html#toLongLong)( ) 。 ``` QString QString.toUpper (self) ``` 返回字符串的大寫副本。 ``` [QString](qstring.html) str = "TeXt"; str = str.toUpper(); // str == "TEXT" ``` 的情況下轉換將總是發生在“C”語言環境。對于依賴于語言環境的情況下使用的折疊[QLocale.toUpper](qlocale.html#toUpper)( ) **See also** [toLower](qstring.html#toLower)()和[QLocale.toLower](qlocale.html#toLower)( ) 。 ``` (int, bool?ok) QString.toUShort (self, int?base?=?10) ``` 返回字符串轉換為`unsigned short`使用基_base_,它默認為10 ,并且必須是2和36 ,或0之間。返回0,如果轉換失敗。 如果發生轉換錯誤, *_ok_設置為False ,否則*_ok_設置為True 。 If _base_為0時, C語言慣例是使用:如果字符串開頭的“0x ” ,基部16被使用;如果字符串以“ 0”時,基部8被使用,否則底座10被使用。 例如: ``` [QString](qstring.html) str = "FF"; bool ok; [ushort](index.htm#ushort-typedef) hex = str.toUShort(&ok, 16); // hex == 255, ok == true [ushort](index.htm#ushort-typedef) dec = str.toUShort(&ok, 10); // dec == 0, ok == false ``` **See also** [number](qstring.html#number)()和[toShort](qstring.html#toShort)( ) 。 ``` QByteArray QString.toUtf8 (self) ``` [](qbytearray.html) [返回字符串的UTF-8表示為](qbytearray.html)[QByteArray](qbytearray.html)。 UTF - 8是Unicode編碼,可以表示所有字符的Unicode字符串像[QString](qstring.html)。 然而,在Unicode的范圍內,但是也有一些不被視為某些字符碼點。 Unicode標準中保留每個Unicode平面( U + FFFE , U + FFFF , U +1 FFFE , U +1 FFFF , U +2 FFFE等) ,以及16碼點在范圍U + FDD0最后兩個碼點.. U + FDDF ,包容性的,非字符。如果任何這些出現在字符串中,它們可以被丟棄,而不會出現在UTF-8表示,或者它們可以由一個或多個字符替換被替換。 **See also** [fromUtf8](qstring.html#fromUtf8)( )[toAscii](qstring.html#toAscii)( )[toLatin1](qstring.html#toLatin1)( )[toLocal8Bit](qstring.html#toLocal8Bit)()和[QTextCodec](qtextcodec.html)。 ``` QString QString.trimmed (self) ``` 返回已空白從開始和結束刪除的字符串。 空白是指任何字符的[QChar.isSpace](qchar.html#isSpace)( )返回True 。這包括ASCII字符'\ T' ,為'\ n ',' \ V' , '\ F' , ' \ r '和' “ 。 例如: ``` [QString](qstring.html) str = " lots\t of\nwhitespace\r\n "; str = str.trimmed(); // str == "lots\t of\nwhitespace" ``` 不像[simplified](qstring.html#simplified)( ) ,修剪( )獨葉內部的空白。 **See also** [simplified](qstring.html#simplified)( ) 。 ``` QString.truncate (self, int?pos) ``` 截斷字符串在給定的_position_索引。 如果指定的_position_索引超出了字符串的結尾,沒有任何反應。 例如: ``` [QString](qstring.html) str = "Vladivostok"; str.truncate(4); // str == "Vlad" ``` If _position_為負時,它相當于通過零。 **See also** [chop](qstring.html#chop)( )[resize](qstring.html#resize)()和[left](qstring.html#left)( ) 。 ``` QString QString.__add__ (self, QString?s2) ``` ``` QString QString.__add__ (self, QByteArray?ba) ``` ``` int QString.__contains__ (self, QString?s) ``` ``` bool QString.__eq__ (self, QString?s) ``` ``` bool QString.__eq__ (self, QLatin1String?s) ``` ``` bool QString.__eq__ (self, QByteArray?s) ``` ``` bool QString.__eq__ (self, QStringRef?s2) ``` ``` bool QString.__ge__ (self, QString?s) ``` ``` bool QString.__ge__ (self, QLatin1String?s) ``` ``` bool QString.__ge__ (self, QByteArray?s) ``` ``` QString QString.__getitem__ (self, int?i) ``` ``` QString QString.__getitem__ (self, slice?slice) ``` ``` bool QString.__gt__ (self, QString?s) ``` ``` bool QString.__gt__ (self, QLatin1String?s) ``` ``` bool QString.__gt__ (self, QByteArray?s) ``` ``` int QString.__hash__ (self) ``` ``` QString QString.__iadd__ (self, QChar.SpecialCharacter?c) ``` ``` QString QString.__iadd__ (self, QString?s) ``` ``` QString QString.__iadd__ (self, QLatin1String?s) ``` ``` QString QString.__iadd__ (self, QByteArray?s) ``` ``` QString QString.__imul__ (self, int?m) ``` ``` bool QString.__le__ (self, QString?s) ``` ``` bool QString.__le__ (self, QLatin1String?s) ``` ``` bool QString.__le__ (self, QByteArray?s) ``` ``` QString.__len__ (self) ``` ``` bool QString.__lt__ (self, QString?s) ``` ``` bool QString.__lt__ (self, QLatin1String?s) ``` ``` bool QString.__lt__ (self, QByteArray?s) ``` ``` QString QString.__mul__ (self, int?m) ``` ``` bool QString.__ne__ (self, QString?s) ``` ``` bool QString.__ne__ (self, QLatin1String?s) ``` ``` bool QString.__ne__ (self, QByteArray?s) ``` ``` bool QString.__ne__ (self, QStringRef?s2) ``` ``` str QString.__repr__ (self) ``` ``` str QString.__str__ (self) ``` ``` unicode QString.__unicode__ (self) ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看