1.格式化字符串
QString str1 = "";
str1.sprintf("你好,我叫%s,今年%d岁了!","发如雪",18);
qDebug()<<str1.toUtf8().data();
2.QString 转 char*
QString str2 = "发如雪是最好的!";
char *ptr = str2.toUtf8().data();
char bufp[64] = {0};
strcpy(bufp,ptr);
qDebug()<<bufp;
3.char * 转QString
char *ppp = "我是爸爸!";
QString str3(ppp);
QMessageBox::information(this,"提示",str3);
4.去掉空格
QString str4 = " 我是 你 爸 爸!";
//trimmed() 去掉字符串首尾的空格
QString strtemp = str4.trimmed();
qDebug()<<strtemp.toUtf8().data();
//simplified() 不仅去掉首尾的空格,中间连续的空格也用一个空格替换
strtemp = str4.simplified();
qDebug()<<strtemp.toUtf8().data();
5.字符长度
count()、size() 和 length() 都返回字符串的字符个数,这 3 个函数是相同的,但是要注意,
//字符串中如果有汉字,一个汉字算一个字符
QString str5 = "我是发如雪,I Love You!";
qDebug()<<"str5 length:"<<str5.length();//17
6.查找字符串
indexOf() 函数的原型为:
int indexOf (const QString &str, int from = 0 , Qt::CaseSensitivity cs = Qt::CaseSensitive) const
其功能是在自身字符串内查找参数字符串 str 出现的位置,参数 from 是幵始查找的位置,Qt::CaseSensitivity cs 参数指定是否区分大小写。
lastIndexOf() 函数则是查找某个字符串最后出现的位置。
QString str1="G:\Qt5Book\QT5.9Study\qw.cpp";
N=str1.indexOf("5.9"); // N=13
N=str1.lastIndexOf("\\"); //N=21
提示,"\" 是转义字符,如果要查找 "\",需要输入 "\\"。
QString str6="I Love C++!";
int npos = str6.indexOf("Lo",0);
if(npos == -1)
{
qDebug()<<"not find it";
}
else
{
qDebug()<<npos;
}
7. contains()
//判断字符串内是否包含某个字符串,可指定是否区分大小写。
QString str7="G:\Qt5Book\QT5.9Study\qw.cpp";
bool ret =str7.contains (".cpp", Qt::CaseInsensitive) ; // ret=true,不区分大小写
qDebug()<<ret;
ret=str7.contains (".CPP", Qt::CaseSensitive) ; // ret=false,区分大小写
qDebug()<<ret;
8.endsWith() 和 startsWith()
startsWith() 判断是否以某个字符串幵头,
endsWith() 判断是否以某个字符串结束。
QString str8="MG:\Qt5Book\QT5.9Study\qw.cpp";
bool N=str8.endsWith (".cpp", Qt::CaseInsensitive) ; // N=true,不区分大小写
N=str8.endsWith (".CPP", Qt::CaseSensitive) ; // N=false,区分大小写
N=str8.startsWith ("g: ") ; // N=true,缺省为不区分大小写
9.left() 和 right()
left 表示从字符串中取左边多少个字符,right 表示从字符串中取右边多少个字符。注意,一个汉字被当作一个字符。
QString str9="学生姓名,男,1984-3-4,汉族,山东";
N=str9.indexOf (",") ; // N=4,第一个","出现的位置
strtemp=str9.left (N) ; //str2="学生姓名"
N=str9.lastIndexOf (",") ; // N=18,最后一个逗号的位置
strtemp=str9.right (str9.size()-N-1); //str2=”山东",提取最后一个逗号之后的字符串
10.数字转QString,QString::number()
int n = 100;
QString str10 = QString::number(n);
QMessageBox::information(this,"提示",str10);
float f = 1000.99;
str10 = QString::number(f);
QMessageBox::information(this,"提示",str10);
11.QString 转数字
QString 类从字符串转换为整数的函数有:
int toInt(bool * ok = Q_NULLPTR, int base = 10) const
long toLong (bool * ok = Q_NULLPTR, int base = 10) const
short toShort (bool * ok = Q_NULLPTR, int base = 10) const
uint toUInt (bool *ok = Q_NULLPTR, int base = 10) const
ulong toULong (bool *ok = Q_NULLPTR, int base = 10) const
QString 将字符串转换为浮点数的函数有:
double toDouble(bool *ok = Q_NULLPTR) const
float toFloat (bool * ok = Q_NULLPTR) const