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;