Qt QString类及常用函数功能详解

3 篇文章 0 订阅
1 篇文章 0 订阅

Qt QString类及常用函数功能详解

Qt QString类及常用函数功能详解

QString 是 Qt 编程中常用的类,除了用作数字量的输入输出之外,QString 还有很多其他功能。
直接堆代码吧!

	//1、append() 在字符串的后面添加字符串,prepend() 在字符串的前面添加字符串,
    QString str1 = "A",str2 = "B";
    QString str3 = str1;
    str3.append(str1);
    qDebug()<<"str3" <<str3;    //"AA"
    str1.prepend(str2);
    qDebug()<< "str1" <<str1;   //"BA"

    //2、toUpper() 将字符串内的字母全部转换为大写形式,toLower() 将字母全部转换为小写形式
    QString str4 = "hello WORLD" , str5, str6;
    str5 = str4.toUpper();
    qDebug()<<"str5" <<str5;    //"HELLO WORLD"
    str6 = str4.toLower();
    qDebug()<<"str6" <<str6;    //"hello world"

    //3、count()、size() 和 length() 都返回字符串的字符个数,这 3 个函数是相同的,但是要注意,字符串中如果有汉字,一个汉字算两个字符
    //    QString str7 = "你好a";  //5
    QString str7="NI好"; //汉字占两个字符   4
    int n = str7.size();
    qDebug()<<"n" << n;
    int m = str7.count();
    qDebug()<<"m" << m;
    int o = str7.length();
    qDebug() << "o" << o;

    //trimmed() 去掉字符串首尾的空格,simplified() 不仅去掉首尾的空格,中间连续的空格也用一个空格替换。
    QString str8="   Are  you  OK  ?  ", str9,str10;
    str9=str8.trimmed () ; //str1="Are you OK? " 去掉字符串首尾的空格
    str10=str8.simplified();  //str1="Are you OK?"不仅去掉首尾的空格,中间连续的空格也用一个空格替换。
    qDebug()<<str9;
    qDebug()<<"10"<<str10;

    //indexOf第一次出现的位置,从0开始;lastIndexOf() 函数则是查找某个字符串最后出现的位置,从0开始。
    //int indexOf (const QString &str, int from = 0 , Qt::CaseSensitivity cs = Qt::CaseSensitive) const
    QString str11="1234567895";
    int c = str11.indexOf("5");  // 4
    int b = str11.lastIndexOf("5"); //9
    qDebug()<<"c" <<c;
    qDebug()<<"b" <<b;

    //只有未赋值的字符串,isNull() 才返回 true。常用 isEmpty()。
    QString str12, str13="";
    bool q =str12.isNull () ; // N=true 未赋值字符串变量
    bool w =str13.isNull () ; // N=false 只有"\0"的字符串,也不是 Null
    bool e =str12.isEmpty(); // N=true
    bool r =str13.isEmpty(); // N=true

    qDebug()<<"q" <<q <<"w" <<w<<"e" <<e <<"r" << r;

    //startsWith() 判断是否以某个字符串幵头,endsWith() 判断是否以某个字符串结束。
    QString str14 = "abc.cpp";
    bool z = str14.endsWith (".CPP", Qt::CaseInsensitive) ; // N=true,不区分大小写
    bool x = str14.endsWith (".CPP", Qt::CaseSensitive) ; // N=false,区分大小写
    bool v = str14.startsWith ("a") ; // N=true, A为false

    qDebug()<<z << x << v;
    //left 表示从字符串中取左边多少个字符,right 表示从字符串中取右边多少个字符。
    QString str15,str17, str16="abc.cpp";
    int f =str16.indexOf (".") ; // 3,第一个"."出现的位置
    str15=str16.left (f) ; //abc
    str17=str16.right (f); //cpp
    qDebug()<< f << str15 << str17;

    //其功能是从字符串中提取以 sep 作为分隔符,从 start 端到 end 端的字符串。
    QString str18,str20,str21,str22,str23, str19=(u8"学生姓名,男,1984-3-4,汉族,山东");
    str18=str19.section (",",0,0); // "学生姓名", 第 1 段的编号为 0
    str20=str19.section (",",1,1); // "男"
    str21=str19.section (",",0,1); // "学生姓名,男"
    str22=str19.section (",",4,4); // "山东"
    str23 = str19.section(",",0,3);//"学生姓名,男,1984-3-4,汉族"

    qDebug()<<"str18" <<str18;
    qDebug()<<"str20" <<str20;
    qDebug()<<"str21" <<str21;
    qDebug()<<"str22" <<str22;
    qDebug()<<"str23" <<str23;
  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
QString类是Qt框架中提供的一个字符串处理类,其中包含了许多与字符串相关的函数和方法。其中,toDouble()、setNum()和number()是三个与数字相关的函数,下面分别进行详细说明: 1. toDouble()函数 toDouble()函数QString类中的一个成员函数,其作用是将QString对象转换为double类型的数字。其函数原型如下: ```cpp double toDouble(bool* ok = nullptr) const; ``` 其中,ok为可选参数,表示转换是否成功的标志位,如果转换成功,则ok返回true,否则返回false。 例如,以下代码将一个字符串转换为double类型: ```cpp QString str = "3.14"; bool ok; double d = str.toDouble(&ok); if(ok){ qDebug() << "转换成功,d的值为:" << d; }else{ qDebug() << "转换失败!"; } ``` 输出结果为: ``` 转换成功,d的值为:3.14 ``` 2. setNum()函数 setNum()函数QString类中的一个成员函数,其作用是将数字转换为字符串类型。其函数原型如下: ```cpp void setNum(double n, char format = 'g', int precision = 6); ``` 其中,n表示需要转换的数字,format表示输出格式,precision表示保留小数点后的位数。 例如,以下代码将一个double类型的数字转换为字符串类型: ```cpp double d = 3.1415926; QString str; str.setNum(d, 'g', 8); qDebug() << str; ``` 输出结果为: ``` 3.1415926 ``` 3. number()函数 number()函数QString类中的一个静态函数,其作用是将数字转换为字符串类型。其函数原型如下: ```cpp static QString number(double n, char format = 'g', int precision = 6); ``` 其中,n表示需要转换的数字,format表示输出格式,precision表示保留小数点后的位数。 例如,以下代码将一个double类型的数字转换为字符串类型: ```cpp double d = 3.1415926; QString str = QString::number(d, 'g', 8); qDebug() << str; ``` 输出结果为: ``` 3.1415926 ``` 以上就是toDouble()、setNum()和number()函数的详细说明和功能解析。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值