(1)QString::toInt()函數將字符串轉換為整型數值,類似的函數還有toDouble()、toFloat()、toLong()、toLongLong()等。下面舉個例子說明其用法:
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
(2)QString提供的字符編碼集的轉換函數將會返回一個const char類型版本的QByteArray,即構造函數QByteArray(const char)構造的QByteArray對象。QByteArray類具有一個字節數組,它既可以存儲原始字節(raw bytes),也可以存儲傳統的以“\0”結尾的8位的字符串。在Qt中,使用QByteArray比使用const char*更方便,且QByteArray也支持隱式共享。轉換函數有以下幾種。
- ① toAscii():返回一個ASCII編碼的8位字符串。
- ② toLatin1():返回一個Latin-1(ISO8859-1)編碼的8位字符串。
- ③ toUtf8():返回一個UTF-8編碼的8位字符串(UTF-8是ASCII碼的超級,它支持整個Unicode字符集)。
- ④ toLocal8Bit():返回一個系統本地(locale)編碼的8位字符串。
下面舉例說明其用法:
QString str=" Welcome to you! ";
QByteArray ba=str.toAscii();
qDebug()<<ba;
ba.append("Hello,World! ");
qDebug()<<ba.data();
一個NULL字符串就是使用QString的默認構造函數或者使用“(const char*)0”作為參數的構造函數創建的QString字符串對象;而一個空字符串是一個大小為0的字符串。一個NULL字符串一定是一個空字符串,而一個空字符串未必是一個NULL字符串。例如:
QString().isNull(); //結果為true
QString().isEmpty(); //結果為true
QString("").isNull(); //結果為false
QString("").isEmpty(); //結果為true