QString 文字列クラスは 16 ビットの Unicode 値を保存し、操作、クエリ、変換などの豊富な機能を提供します
1. 文字列の操作
文字列には次の演算子があります
- 「+」は文字列を結合するために使用され、「+=」は文字列を追加するために使用されます
QString str1 = "Hello ";
str1 = str1 + "World!"; //str1 = "Hello World!"
QString str2 = "Hello ";
str2 += "World!" //str2 = "Hello World!"
- QString::append() は、文字列の末尾に文字列を追加するために使用されます
QString str1 = "Hello ";
QString str2 = "World!";
str1.append(str2); //str1 = "Hello World!"
str1.append("Andyxi!"); //str1 = "Hello Andyxi!"
- QString::sprintf() を使用して文字列を結合することもできます
QString str;
str.sprintf("s%", "Hello "); //str = "Hello "
str.sprintf("s%", "World!"); //str = "World!"
str.sprintf("s% s%", "Hello ", "World!"); //str = "Hello World!"
- その他の文字列結合方法:
QString::insert() //特定位置插入另一字符串
QString::prepend() //在原字符串开头插入另一字符串
QString::replace() //用指定字符串代替原字符串的某些字符
QString::trimmed() //移除字符串两端的空白字符
QString::simplified() //移除字符串两端的空白字符,并使用单个空格字符代替字符串中的空白字符
2. 文字列データのクエリ
クエリ文字列にも複数の方法があります
- QString::startsWith() 関数は、文字列が特定の文字列で始まるかどうかを判断します. この関数には 2 つのパラメーターがあります. 最初のパラメーターは文字列を指定し、2 番目のパラメーターは大文字と小文字を区別するかどうかを指定します。
QString str = "Hello My World";
str.startsWith("Hello", Qt::CaseSensitive); //返回true
str.startsWith("World", Qt::CaseSensitive); //返回false
- QString::endsWith() 関数は、文字列が特定の文字列で終わるかどうかを判断します。パラメーターは上記と同様です。
QString str = "Hello My World";
str.endsWith("Hello", Qt::CaseSensitive); //返回false
str.endsWith("World", Qt::CaseSensitive); //返回true
- QString::contains() 関数は、指定された文字列が出現したかどうかを判断し、パラメータは上記と同様です
QString str = "Hello My World";
str.contains("My", Qt::CaseSensitive); //返回true
- 2 つの文字列を比較するには、"<" "<=" "==" ">=" などの演算子を直接使用できます。
operator >= (const QString&);
- localeAwareCompare() 静的関数、前後の 2 つの文字列を比較
localeAwareCompare(const QString&, const QString&);
- compare() 関数は、大文字と小文字を比較するかどうかを指定できます
compare(const QString&, const QString&, Qt::CaseSensitivity);
3.文字列変換
QString クラスは、文字列を数値型または他の型の文字エンコーディング セットに変換できる豊富な変換関数を提供します。
- QString::toInt() 関数は文字列を整数値に変換します. この関数には 2 つのパラメータがあります. 最初のパラメータは bool 型のポインタで、変換ステータスを返すために使用されます; 2 番目のパラメータは変換のベースを指定します
QString str = "125";
bool ok;
int hex = str.toInt(&ok, 16); //ok = true, hex = 293
int dec = str.toInt(&ok, 10); //ok = true, dec = 125
int aaa = str.toInt(&ok, 0); //基数为0时,根据字符串使用C语言的准换方法
//类似函数还有:
QString::toDouble();
QString::toFloat();
QString::toLong();
QString::toLongLong();
- const char* 型の QByteArray を返す QString::toAscii() 文字エンコーディング変換関数
QByteArray クラスには、生のバイトと「\0」で終わる従来の 8 ビット文字列の両方を格納できるバイト配列があります。
QString str = "Welcome to you! ";
QByteArray ba = str.toAscii(); //将unicode字符串转换为ASCII字符串
qDebug()<<ba; //输出转换后的字符串
ba.append("Hello,World! "); //追加字符串
qDebug()<<ba.data();