⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 qstring.html

📁 QT参考文档
💻 HTML
📖 第 1 页 / 共 5 页
字号:
<li><div class=fn>QString <a href="#number-5"><b>number</b></a> ( double&nbsp;n, char&nbsp;f = 'g', int&nbsp;prec = 6 )</div></li>
<li><div class=fn>QString <a href="#fromLatin1"><b>fromLatin1</b></a> ( const&nbsp;char&nbsp;*&nbsp;chars, int&nbsp;len = -1 )</div></li>
<li><div class=fn>QString <a href="#fromUtf8"><b>fromUtf8</b></a> ( const&nbsp;char&nbsp;*&nbsp;utf8, int&nbsp;len = -1 )</div></li>
<li><div class=fn>QString <a href="#fromLocal8Bit"><b>fromLocal8Bit</b></a> ( const&nbsp;char&nbsp;*&nbsp;local8Bit, int&nbsp;len = -1 )</div></li>
<li><div class=fn>int <a href="#compare"><b>compare</b></a> ( const&nbsp;QString&nbsp;&amp;&nbsp;s1, const&nbsp;QString&nbsp;&amp;&nbsp;s2 )</div></li>
<li><div class=fn>int <a href="#localeAwareCompare"><b>localeAwareCompare</b></a> ( const&nbsp;QString&nbsp;&amp;&nbsp;s1, const&nbsp;QString&nbsp;&amp;&nbsp;s2 )</div></li>
</ul>
<h2>相关函数</h2>
<ul>
<li><div class=fn>bool <a href="#operator-eq-eq"><b>operator==</b></a> ( const&nbsp;QString&nbsp;&amp;&nbsp;s1, const&nbsp;QString&nbsp;&amp;&nbsp;s2 )</div></li>
<li><div class=fn>bool <a href="#operator-eq-eq-2"><b>operator==</b></a> ( const&nbsp;QString&nbsp;&amp;&nbsp;s1, const&nbsp;char&nbsp;*&nbsp;s2 )</div></li>
<li><div class=fn>bool <a href="#operator-eq-eq-3"><b>operator==</b></a> ( const&nbsp;char&nbsp;*&nbsp;s1, const&nbsp;QString&nbsp;&amp;&nbsp;s2 )</div></li>
<li><div class=fn>bool <a href="#operator!-eq"><b>operator!=</b></a> ( const&nbsp;QString&nbsp;&amp;&nbsp;s1, const&nbsp;QString&nbsp;&amp;&nbsp;s2 )</div></li>
<li><div class=fn>bool <a href="#operator!-eq-2"><b>operator!=</b></a> ( const&nbsp;QString&nbsp;&amp;&nbsp;s1, const&nbsp;char&nbsp;*&nbsp;s2 )</div></li>
<li><div class=fn>bool <a href="#operator!-eq-3"><b>operator!=</b></a> ( const&nbsp;char&nbsp;*&nbsp;s1, const&nbsp;QString&nbsp;&amp;&nbsp;s2 )</div></li>
<li><div class=fn>bool <a href="#operator-lt"><b>operator&lt;</b></a> ( const&nbsp;QString&nbsp;&amp;&nbsp;s1, const&nbsp;char&nbsp;*&nbsp;s2 )</div></li>
<li><div class=fn>bool <a href="#operator-lt-2"><b>operator&lt;</b></a> ( const&nbsp;char&nbsp;*&nbsp;s1, const&nbsp;QString&nbsp;&amp;&nbsp;s2 )</div></li>
<li><div class=fn>bool <a href="#operator-lt-eq"><b>operator&lt;=</b></a> ( const&nbsp;QString&nbsp;&amp;&nbsp;s1, const&nbsp;char&nbsp;*&nbsp;s2 )</div></li>
<li><div class=fn>bool <a href="#operator-lt-eq-2"><b>operator&lt;=</b></a> ( const&nbsp;char&nbsp;*&nbsp;s1, const&nbsp;QString&nbsp;&amp;&nbsp;s2 )</div></li>
<li><div class=fn>bool <a href="#operator-gt"><b>operator&gt;</b></a> ( const&nbsp;QString&nbsp;&amp;&nbsp;s1, const&nbsp;char&nbsp;*&nbsp;s2 )</div></li>
<li><div class=fn>bool <a href="#operator-gt-2"><b>operator&gt;</b></a> ( const&nbsp;char&nbsp;*&nbsp;s1, const&nbsp;QString&nbsp;&amp;&nbsp;s2 )</div></li>
<li><div class=fn>bool <a href="#operator-gt-eq"><b>operator&gt;=</b></a> ( const&nbsp;QString&nbsp;&amp;&nbsp;s1, const&nbsp;char&nbsp;*&nbsp;s2 )</div></li>
<li><div class=fn>bool <a href="#operator-gt-eq-2"><b>operator&gt;=</b></a> ( const&nbsp;char&nbsp;*&nbsp;s1, const&nbsp;QString&nbsp;&amp;&nbsp;s2 )</div></li>
<li><div class=fn>const QString <a href="#operator+"><b>operator+</b></a> ( const&nbsp;QString&nbsp;&amp;&nbsp;s1, const&nbsp;QString&nbsp;&amp;&nbsp;s2 )</div></li>
<li><div class=fn>const QString <a href="#operator+-2"><b>operator+</b></a> ( const&nbsp;QString&nbsp;&amp;&nbsp;s1, const&nbsp;char&nbsp;*&nbsp;s2 )</div></li>
<li><div class=fn>const QString <a href="#operator+-3"><b>operator+</b></a> ( const&nbsp;char&nbsp;*&nbsp;s1, const&nbsp;QString&nbsp;&amp;&nbsp;s2 )</div></li>
<li><div class=fn>const QString <a href="#operator+-4"><b>operator+</b></a> ( const&nbsp;QString&nbsp;&amp;&nbsp;s, char&nbsp;c )</div></li>
<li><div class=fn>const QString <a href="#operator+-5"><b>operator+</b></a> ( char&nbsp;c, const&nbsp;QString&nbsp;&amp;&nbsp;s )</div></li>
<li><div class=fn>QDataStream &amp; <a href="#operator-lt-lt"><b>operator&lt;&lt;</b></a> ( QDataStream&nbsp;&amp;&nbsp;s, const&nbsp;QString&nbsp;&amp;&nbsp;str )</div></li>
<li><div class=fn>QDataStream &amp; <a href="#operator-gt-gt"><b>operator&gt;&gt;</b></a> ( QDataStream&nbsp;&amp;&nbsp;s, QString&nbsp;&amp;&nbsp;str )</div></li>
</ul>
<hr><a name="details"></a><h2>详细描述</h2>


<p>QString类提供了一个Unicode文本和经典的C以零结尾的字符数组的抽象。

<p> QString使用<a href="shclass.html">隐含共享</a>,这使它非常有效率并且很容易使用。
<p> 所有的QString的方法都使用<tt>const char *</tt>参数,<tt>const char *</tt>被解释为经典的C风格的以零结尾的ASCII字符串。所以<tt>const char *</tt>参数为0是合法的。如果<tt>const char *</tt>不是以零结尾的,结果是不确定的。把经典的C字符串复制到QString的函数将不会复制结尾的0字符。QString的<a href="qchar.html">QChar</a>数组(可以通过<a href="#unicode">unicode</a>()返回)通常不以零结尾。如果你需要把QString传递到一个需要C的以零结尾的字符串,请使用<a href="#latin1">latin1</a>()。
<p> <!-- index QString::null --><a name="QString-null"></a>没有分配任何东西的QString是<em>零</em>,也就是长度和数据指针都为0。引用空字符串(“”,一个单一的'&#92;0'字符)的QString是<em>空</em>。零和空这两个QString在方法中都是合法的。把<tt>(const char *) 0</tt>赋值给QString给定了一个零QString。为了方便,<a href="qstring.html#QString-null">QString::null</a>是一个零QString。当排序的时候,空字符串在最前面,然后是非空字符串,然后才是零字符串。我们建议使用<tt>if ( !str.isNull() )</tt>,而不是<tt>if ( !str )</tt>来检测非零字符串,关于解释说明也可以参考<a href="#operator!">operator!</a>()。
<p> 注意如果你发现你正在混合使用<a href="qcstring.html">QCString</a>、QString和<a href="qbytearray.html">QByteArray</a>,这将会导致很多不必要的复制并且也许会预示着你正在处理的真实自然数据是不确定的。如果数据是以零结尾的八位数据,请使用<a href="qcstring.html">QCString</a>;如果它是没有结尾的(也就是包含0)八位数据,请使用<a href="qbytearray.html">QByteArray</a>;如果它是文本,请使用QString。
<p> 字符串列表可以使用<a href="qstringlist.html">QStringList</a>类来处理。你可以使用<a href="qstringlist.html#split">QStringList::split</a>()来把一个字符串分割为一个字符串列表,并且可以使用<a href="qstringlist.html#join">QStringList::join</a>()把一个字符串列表连接成一个使用随意间隔符的字符串。你也可以使用<a href="qstringlist.html#grep">QStringList::grep</a>()从一个字符串列表中获得包含特定子字符串或者包含匹配特定的<a href="qregexp.html">regex</a>的字符串列表。
<p> <b>C程序员的注意事项</b>
<p> 由于C++的类型系统和QString是<a href="shclass.html#implicitly-shared">隐含共享</a>的事实,QString也许会被看做整型或者其它简单基本类型。例如:
<p> <pre>
    QString boolToString( bool b )
    {
        QString result;
        if ( b )
            result = "True";
        else
            result = "False";
        return result;
    }
  </pre>
 
<p> 变量result是一个分配在栈中的自动变量。当return被调用时,因为我们正在返回值,复制构造函数被调用并且这个字符串的一个复制被返回。(我们要感谢<a href="shclass.html#implicit-sharing">隐含共享</a>,没有实际的复制发生,请看下面。)
<p> 在Qt的源代码中,你将会遇到想这样的QString的用法:
<pre>
    QString func( const QString&amp; input )
    {
        QString output = input;
        // 处理输出
        return output;
    }
  </pre>
 
<p> 从input到output的“复制”几乎和复制指针一样快,因为后面的场景复制是通过增加引用计数器来实现的。QString操作是基于写时复制的,只有在实例发生实际改变时,才会被复制。
<p> 如果你想不丢失任何Unicode信息的情况下创建一个QString的<a href="shclass.html#deep-copy">深度复制</a>,那么你应该使用QString中用<a href="qchar.html">QChar</a>*作为参数的构造函数。例如:
<p> <pre>
    QString a("abcd");
    QString b( a.<a href="#unicode">unicode</a>(), b.<a href="#length">length</a>() );
  </pre>
 
<p> 另外,使用QString中用const char*参数的构造函数就足够了。例如:
<p> <pre>
    QString a("abcd");
    QString b( a.<a href="#latin1">latin1</a>() );
  </pre>
 
<p> <p>也可以参考<a href="qchar.html">QChar</a>、<a href="qcstring.html">QCString</a>、<a href="qbytearray.html">QByteArray</a>、<a href="qconststring.html">QConstString</a>、<a href="shared.html">隐含和明显共享类</a>、<a href="text.html">文本相关类</a>和<a href="tools.html">非图形用户界面类</a>。

<hr><h2>成员类型文档</h2>
<h3 class=fn><a name="SectionFlags-enum"></a>QString::SectionFlags</h3>

<ul>
<li><tt>QString::SectionDefault</tt> - 空的部分被考虑,开始的和结尾的分隔符不被包含并且区分大小写来比较分隔符。
<li><tt>QString::SectionSkipEmpty</tt> - 把空的部分看做就像它们不存在一样,也就是说它们不被考虑为有关的<em>start</em>和<em>end</em>。
<li><tt>QString::SectionIncludeLeadingSep</tt> - 在结果字符串中包含开始的分隔符(如果有的话)。
<li><tt>QString::SectionIncludeTrailingSep</tt> - 在结果字符串中包含末尾的分隔符(如果有的话)。
<li><tt>QString::SectionCaseInsensitiveSeps</tt> - 不区分大小写来比较分隔符。
</ul><p> 最后的四个值可以被或运算在一起来形成一个标记。
<p> <p>也可以参考<a href="#section">section</a>()。

<hr><h2>成员函数文档</h2>
<h3 class=fn><a name="QString"></a>QString::QString ()
</h3>
<p> 构造一个零字符串。这是一个不被分配任何东西的字符串,也就是说长度和数据指针都为0。
<p> <p>也可以参考<a href="#isNull">isNull</a>()。

<h3 class=fn><a name="QString-2"></a>QString::QString ( <a href="qchar.html">QChar</a>&nbsp;ch )
</h3>
构造一个长度为一个字符,内容为给定字符<em>ch</em>的字符串。

<h3 class=fn><a name="QString-3"></a>QString::QString ( const&nbsp;<a href="qstring.html">QString</a>&nbsp;&amp;&nbsp;s )
</h3>
构造一个<em>s</em>的<a href="shclass.html#implicitly-shared">隐含共享</a>的复制。这是短时间的,因为<a href="shclass.html#reference-counting">引用计数</a>被使用。

<h3 class=fn><a name="QString-4"></a>QString::QString ( const&nbsp;<a href="qbytearray.html">QByteArray</a>&nbsp;&amp;&nbsp;ba )
</h3>
构造一个被解释为经典C字符串的<em>ba</em>的<a href="shclass.html#deep-copy">深度复制</a>的字符串。

<h3 class=fn><a name="QString-5"></a>QString::QString ( const&nbsp;<a href="qchar.html">QChar</a>&nbsp;*&nbsp;unicode, uint&nbsp;length )
</h3>
构造一个<a href="qchar.html">QChar</a>数组中开始<em>length</em>个字符的<a href="shclass.html#deep-copy">深度复制</a>的字符串。
<p> 如果<em>unicode</em>和<em>length</em>为0,那么一个零字符串被创建。
<p> 如果只是<em>unicode</em>为0,字符串为空,但是被分配为<em>length</em>个字符空间——无论如何QString可以自动扩展,但是这也许会在一些情况下提高速度。我们建议根据这个目的使用简单的构造函数和<a href="#setLength">setLength</a>(),因为它的结果是有更多的可读代码。
<p> <p>也可以参考<a href="#isNull">isNull</a>()和<a href="#setLength">setLength</a>()。

<h3 class=fn><a name="QString-6"></a>QString::QString ( const&nbsp;char&nbsp;*&nbsp;str )
</h3>
构造一个被解释为经典C字符串的<em>str</em>的<a href="shclass.html#deep-copy">深度复制</a>的字符串。
<p> 如果<em>str</em>,那么一个零字符串被创建。
<p> 这是一个抛出构造函数,但是它是完全安全的:把一个Latin1的const char*转化到QString保存了所有的信息。当你编译你的应用程序时,你可以通过定义QT_NO_CAST_ASCII来关闭这个构造函数。你可以使用<a href="#setLatin1">setLatin1</a>()、<a href="#fromLatin1">fromLatin1</a>()、<a href="#fromLocal8Bit">fromLocal8Bit</a>()和<a href="#fromUtf8">fromUtf8</a>()来生成QString。或者无论什么适合你的八位数据的编码方式。
<p> <p>也可以参考<a href="#isNull">isNull</a>()。

<h3 class=fn><a name="~QString"></a>QString::~QString ()
</h3> 
<p> 销毁这个字符串并且如果这是这个字符串的最后一个复制,就释放“真实的”字符串。

<h3 class=fn><a href="qstring.html">QString</a>&nbsp;&amp; <a name="append"></a>QString::append ( const&nbsp;<a href="qstring.html">QString</a>&nbsp;&amp;&nbsp;str )
</h3>
把<em>str</em>添加到字符串中并且返回结果的引用。
<p> <pre>
    string = "Test";
    string.append( "ing" );        // string == "Testing"
  </pre>
 
<p> 等于<a href="#operator+-eq">operator+=</a>()。
<p>实例:<a href="dirview-example.html#x1739">dirview/dirview.cpp</a>。

<h3 class=fn><a href="qstring.html">QString</a>&nbsp;&amp; <a name="append-2"></a>QString::append ( char&nbsp;ch )
</h3> 
这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。
<p> 把字符<em>ch</em>添加到字符串中并且返回结果的引用。
<p> 等于<a href="#operator+-eq">operator+=</a>()。

<h3 class=fn><a href="qstring.html">QString</a>&nbsp;&amp; <a name="append-3"></a>QString::append ( <a href="qchar.html">QChar</a>&nbsp;ch )
</h3> 
这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。
<p> 把字符<em>ch</em>添加到字符串中并且返回结果的引用。
<p> 等于<a href="#operator+-eq">operator+=</a>()。

<h3 class=fn><a href="qstring.html">QString</a> <a name="arg"></a>QString::arg ( const&nbsp;<a href="qstring.html">QString</a>&nbsp;&amp;&nbsp;a, int&nbsp;fieldwidth = 0 ) const
</h3>
<p> 这个函数将返回使用<em>a</em>来替换最低层出现的<tt>%i</tt>(<tt>i</tt>为'1'或'2'或……'9')的字符串。
<p> <em>fieldwidth</em>值指定了填充到<em>a</em>中的最小空间。正值将产生右对齐文本,负值将产生左对齐文本。
<p> <pre>
    QString firstName( "Joe" );
    QString lastName( "Bloggs" );
    QString fullName;
    fullName = <a href="#QString">QString</a>( "First name is '%1', last name is '%2'" )
               .arg( firstName )
               .arg( lastName );

    // fullName == First name is 'Joe', last name is 'Bloggs'

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -