字串(QString)

Qt提供QString類別作為字串操作,QString保存16位元Unicode,提供豐富的操作、查詢和轉換等函數,並進行了隱式共享的優化。


QString提供了+跟+=運算符作為字符相加,我們可用length()檢查字串長度。

String str = "Hello";
str += " Qt";      //str="Hello Qt"
int strLength = str.length();    //strLength=8

QString::append()函式,提供與+=運算符相同功能。

QString str = "Hello";
str. append(" Qt");    //str="Hello Qt"

QString有類似C++的sprintf()函式,可用於格式化字串。

QString str;
str.sprintf("%s:%d", "Qt", 2015);  //str="Qt:2015”

QString::arg()函式,提供更便利的方式格式化字串,支持Unicode,不用特別指定格式,並允許改變%n的順序。

QString str = QString("%1:%2").arg("Qt ").arg(2015);  //str="Qt:2015”

QString::toInt()、toDouble()函式,將字串轉成整數或浮點數。

QString str1 = "12";
QString str2 = "12.5";
int ret1 = str1.toInt();  //ret1=12
double ret2 = str2.toDouble();  //ret2=12.5

QString::number()函式,將整數或浮點數轉成字串。

QString str1 = QString::number(100);    //str1 = "100"
QString str2 = QString::number(100.5);  //str2 = "100.5"

QString::insert()函式,在原字串特定的位置插入另一個字串。 QString str = “hllo"; str.insert(1,QString(“e")); //str="hello"


QString::prepend()函式,在原字串開頭插入另一個字串。

QString str = "ello";
str.prepend(QString("h"));   //str="hello"

QString::replace()函式,用指定的字串取代原字串。

//replace(int position, int n, const QString &)
QString str = "aallo";
str.replace(0,2,QString("he")); //str="hello"

QString::trimmed()函式,移除字串兩端的空白。 QString str = " hello “; str.trimmed(); //str=" hello " str = str.trimmed(); //str= “hello"


QString::contains()函式,判斷一個字串是否出現過,第二個參數指定是否分辨大小寫,預設分辨大小寫。

QString str = "hello world";
bool test = str.contains("world",Qt::CaseSensitive);   //test=true

QString::startsWith()、endsWith()函式,判斷一個字串是否以某個字串做開頭或結尾。

QString str = "hello world";
bool test1 = str.startsWith("hello",Qt::CaseSensitive); //test1=true
bool test2 = str.endsWith("WORLD",Qt::CaseInsensitive); //test2=true

QString::compare()函式,比較兩個字串,如果前面字串小於後面返回負整數,等於的話返回0,大於的話返回整數。

QString str = "hello";
int ret = str.compare(QString("hi")); //ret=-4

QString str = "hello";
QChar char1 = str.at(0);  //char1="h"
QChar char2 = str[1];     //char2="e"

QString::isEmpty()函式,檢查字串是否為空字串。

QString str = "";
bool ret = str.isEmpty(); //ret=true
  • 李維哲(TwinkyLee)

    真的很實用,謝謝妳~3~