2.1.3 Qt字符串的转换 -- 2017.11.22

HuRui 发布于 2017/11/22 17:20
查看:741|回复:2

    1122,一二一,一二一,听说今天有大事发生.........好事坏事,都先留个脚印...

                             Qt字符串的转换

QString类提供了丰富的转换函数,可以将一个字符串转换为数值类型或其他其他的字符编码集

   (1)QString::toInt()函数将字符串转换为整型数值,类似的函数还有toDouble()、        toFloat()、toLong()、toLongLong()等。例如:

    QString str="125";                    //初始化一个"125"的字符串

    bool ok;  

    int hex = str.toInt(&ok,16);          //ok=true,hex=293

    int dec = str.toInt(&ok,10);          //ok=true,hex=125

   其中,int hex = str.toInt(&ok,16):调用QString::toInt()函数将字符串转换为整型数值,函数QString::toInt()有两个参数。第一个参数是一个bool类型的指针,用于返回转换的状态,当转换成功时设置为true,否则设置为false。第二个参数指定了转换的基数。当基数设置为0时,将会使用C语言的转换方法,即如果字符串以“0x”开头,则基础为16;如果字符串以“0”开头,则基数为8;其他情况下,基数一律是10。


   (2)QString提供的字符编码集的转换函数将会返回一个const char*类型版本的QByteArray,即构造函数QByteArray(const char*)构造的QByteArray对象 QByteArray类具有一个字节数组,它既可以存储原始字节

(raw bytes),也可以存储传统的以“\0”结尾的8位的字符串。在Qt中,使用QByteArray比使用const char*更方便,且QByteArray也支持隐式共享。转换函数有以下几种:

   1>toAscii():返回一个ASCII编码的8位字符串

   2>toLatin1():返回一个Latin-1(ISO8859-1)编码的8位字符串

   3>toUtf8():返回一个UTF-8编码的8位字符串(UTF-8是ASCII码的超级,它支持整个Unicode      字符集)

   4>toLocal8Bit():返回一个系统本地(locale)编码的8位字符串

   例如:

   QString str = "Welcome to you!";        //初始化一个字符串对象

   QByteArray ba=str.toAscii();            //(a)

   qDebug()<<ba;                           //(b)

   ba.append("Hello,World!");              //(c)

   qDebug()<<ba.data();                    //输出最后结果

   其中,(a)QByteArray ba=str.toAscii():通过QString::toAscii()函数,将Unicode编码的字符串转换为

ASCII码的字符串,并存储在QByteArray对象ba中

   (b)qDebug()<<ba:使用qDebug()函数输出转换后的字符串(qDebug())支持输入的Qt对象

   (c)ba.append("Hello,World!"):使用QByteArray::append()函数追加一个字符串


   注意:NULL字符串和空(empty)字符串的区别

   一个NULL字符串就是使用QString默认构造函数或者使用“(const char*)0”作为参数的构    造函数创建的QString字符串对象;而一个空字符串是一个大小为0的字符串。一个NULL字符    串一定是一个空字符串,而一个空字符串未必是一个NULL字符串。例如:

   QString().isNull();       //结果为true

   QString().isEmpty();      //结果为true

   QString("").isNull();     //结果为true

   QString("").isEmpty();    //结果为true

                            8dd122dc1b834c03e2400232e2f46f3b003.gif

                     - - - - - - - - 害你加班的bug,就是我写的! - - - - - -  



查看点赞情况
全部点赞
总计: --
HuRui于 2017-11-22 17:22 重新编辑过该贴

共有2条评论

发布新贴
招版主啦

版主

  • 西米酱 西米酱
  • xly xly
  • 章鱼哥笔记 章鱼哥笔记

注册有礼

完善以下信息,为你推荐课程

  • 学生
  • 白领
  • 高管
  • 自由职业
  • 其他
  • 工作需要
  • 自我提升
  • 兴趣爱好
  • 创业/转型
  • 其他
  • 小白
  • 了解
  • 熟悉
  • 精通
  • 其他
  • 高中/中专
  • 专科
  • 本科
  • 硕士
  • 其他
  • 影视枪战大片特效解析
  • PS视觉惊悚课堂
  • 45天7千平方大厦变形记
  • 原画学习痛点技法全解析
  • 影视动画奇幻课堂
  • AI高端商业设计全攻略
  • UG职场生存必备指南
  • 日赚千元之新媒体行业揭秘
出现异常