QT中QString 类的使用

来源:互联网 发布:复制linux系统 编辑:程序博客网 时间:2024/05/19 16:05

QString 类中各函数的作用。

一、字符串连接函数。
1、QString也重载的+和+=运算符。这两个运算符可以把两个字符串连接到一起。
    
2、QString的append()函数则提供了类似的操作,例如:

   str = "User: ";  
   str.append(userName);  
   str.append("\n");


二、获取字符串某位置的值。


    QString x = "Nine pineapples";  
    QString y = x.mid(5, 4);            // y == "pine"  
    QString z = x.mid(5);               // z == "pineapples"

1、mid()函数接受两个参数,第一个是起始位置,第二个是取串的长度。如果省略第二个参数,则会从起始位置截取到末尾。正如上面的例子显示的那样

2、函数left()和rigt()类似,都接受一个int类型的参数n,都是对字符串进行截取。不同之处在于,left()函数从左侧截取n个字符,而right()从右侧开始截取。下面是left()的例子:

   1. QString x = "Pineapple";  
   2. QString y = x.left(4);      // y == "Pine"

三、获取字符在字符中的位置。
     indexOf()
     
   QString x = "sticky question";  
   QString y = "sti";  
   x.indexOf(y);               // returns 0  
   x.indexOf(y, 1);            // returns 10  
   x.indexOf(y, 10);           // returns 10  
   x.indexOf(y, 11);           // returns -1

四、可以检测字符串是不是以某个特定的串开始或结尾。
    startsWith()    endsWith()
    
    
    if (url.startsWith("http:") && url.endsWith(".png"))  
         {  }

    这段代码等价于

   if (url.left(5) == "http:" && url.right(4) == ".png") 
         {  }

五、

     字符串替换函数replace();
     trimmed()函数去除字符串两侧的空白字符(注意,空白字符包括空格、Tab以及换行符,而不仅仅是空格);
     toLower()和toUpper()函数会将字符串转换成小写大写字符串;
     remove()和 insert()函数提供了删除和插入字符串的能力;
     simplified()函数可以将串中的所有连续的空白字符替换成一个,并且把两端的空白字符去除,例如"   \t   ”会返回一个空格" "。

 

六、const char *类型的C风格字符串与QString字符之间的转换。

     简单来说,QString的+=即可完成这个功能:
     str += " (1870)";

     这里,我们将const char * 类型的字符串" (1870)"转换成为QString类型。
     如果需要显式的转换,可以使用QString的强制转换操作,或者是使用函数fromAscii()等。
     为了将QString类型转成const char *字符串,需要进行两步操作,一是使用toAscii()获得一个QByteArray类型对象,
     然后调用它的data()或者constData()函数,
     例如:

     printf("User: %s\n", str.toAscii().data());

     为了方便使用,Qt提供了一个宏qPrintable(),这个宏等价于toAscii().constData(),例如:

      printf("User: %s\n", qPrintable(str)); 
      
      我们调用QByteArray类上面的data()或者constData()函数,将获得QByteArray 内部的一个const char*类型的字符串,
      因此,我们不需要担心内存泄漏等的问题,Qt会替我们管理好内存。不过这也暗示我们,注意不要使用这个指针太长时间,
      因为如果 QByteArray被delete,那么这个指针也就成为野指针了。如果这个QByteArray对象没有被放在一个变量中,
      那么当语句结束后,QbyteArray对象就会被delete,这个指针也就被delete 了。

七、字符串与其它类型的转换函数。
     toInt()     转整型
     toDouble()  转双精度型
     toLong()    转长整型
     这些函数都接受一个bool指针作为参数,函数结束之后将根据是否转换成功设置为true或者false:

     bool ok;  
     double d = str.toDouble(&ok);  
     if(ok)   
     {  
         // do something...  
     } else {  
          // do something...  
     }


     整型转字符串型:
         1、使用static的函数number()可以把数字转换成字符串。例如:
             QString str = QString::number(54.3); 
         2、 也可以使用非static函数setNum()来实现相同的目的:
              QString str;  
              str.setNum(54.3);


    

八、QString则提供了一个sprintf()函数实现了与C语言中的printf函数相同的功能。
    
    1. str.sprintf("%s %.1f%%", "perfect competition", 100.0); 
       这句代码将输出:perfect competition 100.0%
       
    2、另一种格式化字符串输出的函数arg():
 
        str = QString("%1 %2 (%3s-%4s)").arg("permissive").arg("society").arg(1950).arg(1970);

      这段代码中,%1, %2, %3, %4作为占位符,将被后面的arg()函数中的内容依次替换,比如%1将被替换成permissive,
      %2将被替换成society,%3将被替换成 1950,%4将被替换曾1970,最后,
      这句代码输出为:permissive society (1950s-1970s). arg()函数比起sprintf()来是类型安全的,
      同时它也接受多种的数据类型作为参数,因此建议使用arg()函数而不是传统的 sprintf()。

九、求字符串的长度,返回值为INT型。
     length();

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 u盘内存是假的怎么办 新买的电脑应该怎么办 海尔一体机电脑开不开机怎么办 苹果笔记本系统坏了怎么办 苹果笔记本电脑电池坏了怎么办 苹果笔记本电脑屏幕坏了怎么办 平板开关键坏了怎么办 平板电脑电池坏了怎么办 平板电脑充电口坏了怎么办 平板电脑系统坏了怎么办 平板电脑充电器坏了怎么办 平板电脑触摸屏坏了怎么办 平板电脑关不了机怎么办 平板电脑触摸屏没反应怎么办 平板电脑声音太小怎么办 平板电脑频碎了怎么办? 淘宝直播展示频道排后怎么办 网店头像改不了怎么办 被骗了7500追不回来怎么办 steam中国版原来的游戏怎么办 老公买驾照被骗妻子应该怎么办 被淘密码骗了怎么办 逛街手机没电了怎么办 电脑登入密码忘了怎么办 晚上睡不好觉经常做梦怎么办 开淘宝店开始零销量怎么办 淘宝店开直通车后销量怎么办 淘宝直播一开始直播没人该怎么办 淘宝店铺访客数据下滑怎么办 2个ctrl键都失灵怎么办 淘宝上搜索不到很久以前订单怎么办 关键词找不到了是不是被降权怎么办 购买小程序关键词想退款怎么办? 浏览器审查元素不拆分关键词怎么办 拼多多商品想重新编辑怎么办 新开店铺没有销量怎么办 新开的店铺没有销量怎么办 淘宝的商品权重下降是怎么办 360n5手机耗电快怎么办 怪兽充电宝丢了怎么办 有已处置的评价怎么办