Ads 468x60px

##EasyReadMore##

15 9月, 2015

Qt 字串處理



連接字串(符):


QString str = "User: ";
str += userName + "\n";
str.append(userName); str.append("\n");
str.sprintf("%s %.1f%%", "perfect competition", 100.0); //perfect competition 100.0%
str = QString("%1 %2 (%3s-%4s)") .arg("permissive").arg("society").arg(1950).arg(1970);
//permissive society (1950s-1970s)

數字轉字串:


str = QString::number(59.6);
str.setNum(59.6);

字串提取:


QString str = "polluter pays principle"; qDebug() << str.mid(9, 4);
//output "pays principle"
QString str = "polluter pays principle"; qDebug() << str.mid(9);
//output "polluter principle"
QString str = "polluter pays principle"; qDebug() << str.left(8) << " " << str.right(9);
//output "polluter principle"
QString str = "the middle bit"; int i = str.indexOf("middle");
// i = 4 ,if fail is -1

字串比較:


if (url.startsWith("http:") && url.endsWith(".png"))    //win!!
or
if (url.left(5) == "http:" && url.right(4) == ".png") ...
if (fileName.toLower() == "readme.txt") ... //toUpper() 轉換大小寫比較

字串替換:


QString str = "a cloudy day"; str.replace(2, 6, "sunny");
//output "a sunny day"
str.remove(2, 6); str.insert(2, "sunny");
//output "a sunny day"
QString str = " BOB \t THE \nDOG \n"; qDebug() << str.trimmed();    //濾掉字符串中的空白符號(如空格,和換行…)
QString str = "polluter pays principle"; QStringList words = str.split(" ");
//output "polluter", "pays", 和 "principle"
words.sort(); str = words.join("\n");   //按字母顺序排序並用換行符分開
words.[words.size()-1] //取最後一個

字串轉換:


printf("User: %s\n", qPrintable(str));  //win
or
printf("User: %s\n", str.toAscii().data());
QString 轉換 const char *,就使用toAscii()或toLatin1()。 這些函數回傳一個 QByteArray,它能被轉換為一個const char *,通過使用QByteArray::data()或QByteArray::constData()。
當我們在一個QByteArray上調用data()或constData(),返回的字符串屬於QByteArray對象所有。這意味著我們不用擔心內存洩漏;Qt將會為我們回收內存。另一方面,我們小心不能使用這個指標太長時間。如果QByteArray沒有保存在一個變數中,在語句結束時,它將會被自動刪除。
QByteArray有著與QString相似的API。像left(), right(), mid(), toLower(), toUpper(), TRimmed(), 和simplified() 在QByteArray中和QString中相應的函數有著同樣的語義。 QByteArray對存儲純二進制數據(raw binary data)和8-bit編碼文本字符串有用。一般地,我們推薦使用QString來存儲文本而不是用QByteArray,因為QString支持Unicode

其它:


isEmpty()或檢查length()是否為0

參考文件:


QT QString 很全的使用-blue_1110-ChinaUnix博客 - http://goo.gl/x7H8MD

0 意見:

張貼留言

 
Blogger Templates