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;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值