Qt字符串类——3.字符串的转换

(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
posted @ 2016-10-21 13:58  零分的借口  Views(2203)  Comments(1Edit  收藏  举报