目录
一、创建
QString str1 = "Hello1";
QString str2 = QString("%1 to %2").arg("Welcome").arg("QT!");
二、插入
//1、插入字符 在X位置插入字符串
qDebug() << str.insert(0," Insert ");
//2、在字符串起始处插入另一个字符串
qDebug() << str.prepend(" Hello ");
//3、在字符串起末尾插入另一个字符串
qDebug() << str.append(" End ");
三、删除
//1、清空字符串
str.clear();
//2、移除某一位开始后的几个字符
str.remove(0,1);
//3、移除字符串中的某一种字符
str.remove('2');
//4、去除字符串两端的空白字符
qDebug() << str.trimmed();
//5、去除字符串两端的空白字符,使用单个空格‘ ’代替字符串中出现的空白字符
qDebug() << str.simplified();
四、修改
//1、替换字符串
//用参数3替换掉原字符串0位置开始后面的2个字符
str.replace(0,2,"qwer");
//2、拼接两个字符串
str = str + "abc";
str += "abc";
//3、拼接两个字符串
str.sprintf("%s--%s","Welcome ","to QT!");
五、查找
//1、查找字符串是否以指定字符串开头,参数2大小写敏感,返回值是bool
qDebug() << str.startsWith("AB",Qt::CaseSensitive);
//2、查找字符串是否以指定字符串结尾,参数2大小写敏感,返回值是bool
qDebug() << str.endsWith("EF",Qt::CaseSensitive);
//3、查找字符串中是否出现指定字符串,参数2大小写敏感,返回值是bool
qDebug() << str.contains("EF",Qt::CaseSensitive);
//4、从哪位开始查找字符串;成功返回匹配字符串的下标。失败返回-1;
qDebug() << str.indexOf("He",0);
六、截取字符
//1、截取从左开始的3个字符
qDebug() << str.left(3);
//2、截取从右开始的3个字符
qDebug() << str.right(3);
//3、截取从下标1开始的6个字符
qDebug() << str.mid(1,6);
//4、将字符串按'e',分割成几块,选下标1开始的块,到下标1的块结束
qDebug() << str.section('e',1,1);
//5、将字符串按'e',分割成几块,存到QStringList中
QStringList list = str.split('e');
for (int i = 0; i < list.count(); ++i) {
qDebug() << list.at(i);
}
七、字符串与数字转换
//1、字符串转换数字
str = "123";
bool ok = false;
//将字符串转换成int类型,参数1代表转换成功与否,参数2,代表字符串是几进制数
//将16进制 123 转换成10进制数
//同样的还有 toDouble();toFloat();toLong();toLongLong()等
int tempInt = str.toInt(&ok,16);
//2、数字转字符串
//将十进制转为八进制数,存到str中
str.setNum(16,8);
qDebug() << str;
double numScientific = 456.78999;
//将数字numScientific用科学计数法表示,保留5位小数,存到str中
str.setNum(numScientific, 'e', 5);
qDebug()<<"Scientific: "<<str;
//将数字numFixed,保留7位小数,存到str中
double numFixed = 123.78999;
str.setNum(numFixed, 'd', 7);
qDebug()<<"Fixed: "<<str;
八、判断字符串是否存在,是否为空
//判断字符串是否存在
qDebug() << QString().isNull(); // returns true
qDebug() << QString("").isNull(); // returns false
qDebug() << QString("hello").isNull(); // returns false
//判断字符串是否为空
qDebug() <<QString().isEmpty(); // returns true
qDebug() <<QString("").isEmpty(); // returns true
qDebug() <<QString("Q").isEmpty(); // returns false
qDebug() <<QString("hello").isEmpty(); // returns false
九、测试代码:
#include <QCoreApplication>
#include <QString>
#include <QStringList>
#include <QDebug>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
//创建
QString str = "";
QString str2 = QString("%1 to %2").arg("Welcome").arg("QT!");
qDebug() << "QString(\"%1 to %2\").arg(\"Welcome\").arg(\"QT!\") " << str2;
//插入
qDebug() << "插入 str = " << str;
//插入字符 在0位置插入字符串
qDebug() << "insert "<<str.insert(0," Insert ");
//在字符串起始处插入另一个字符串
qDebug() << "prepend " << str.prepend(" Hello ");
//在字符串起末尾插入另一个字符串
qDebug() << "append " << str.append(" End ");
//删除
qDebug() << "删除 str = " << str;
//1、清空字符串
str.clear();
qDebug() << "clear " << str;
//2、移除某一位开始后的几个字符
str = " AB CD ";
qDebug() << "remove " << str.remove(0,1);
//3、移除字符串中的某一种字符
str = " AB CD ";
qDebug() << "remove " << str.remove('2');
//4、去除字符串两端的空白字符
str = " AB CD ";
qDebug() << "trimmed " << str.trimmed();
//5、去除字符串两端的空白字符,使用单个空格‘ ’代替字符串中出现的空白字符
str = " AB CD ";
qDebug() << "simplified " << str.simplified();
//修改
qDebug() << "修改 str = " << str;
//1、替换字符串
//用参数3替换掉原字符串0位置开始后面的2个字符
str = "ABC";
qDebug() << "replace " << str.replace(0,2,"FGH");
//2、拼接两个字符串
str = str + "abc";
qDebug() << "+ " << str;
str += "abc";
qDebug() << "+= " << str;
//3、拼接两个字符串
str.clear();
str.sprintf("%s--%s","Welcome ","to QT!");
qDebug() << "sprintf str = " << str;
//查找
str = "ABCEF";
qDebug() << "查找 str = " << str;
//1、查找字符串是否以指定字符串开头,参数2大小写敏感,返回值是bool
qDebug() << "startsWith " << str.startsWith("AB",Qt::CaseSensitive);
//2、查找字符串是否以指定字符串结尾,参数2大小写敏感,返回值是bool
qDebug() << "endsWith " << str.endsWith("EF",Qt::CaseSensitive);
//3、查找字符串中是否出现指定字符串,参数2大小写敏感,返回值是bool
qDebug() << "contains " << str.contains("EF",Qt::CaseSensitive);
//4、从哪位开始查找字符串;成功返回匹配字符串的下标。失败返回-1;
qDebug() << "indexOf " << str.indexOf("CE",0);
//截取
str = "ABCEF";
qDebug() << "截取 str = " << str;
//1、截取从左开始的3个字符
qDebug() << "left " << str.left(3);
//2、截取从右开始的3个字符
qDebug() << "right " << str.right(3);
//3、截取从下标1开始的6个字符
qDebug() << "mid " << str.mid(1,4);
//4、将字符串按'e',分割成几块,选下标1开始的块,到下标1的块结束
qDebug() << "section " << str.section('E',1,1);
//5、将字符串按'e',分割成几块,存到QStringList中
QStringList list = str.split('E');
for (int i = 0; i < list.count(); ++i) {
qDebug() << "split " << list.at(i);
}
//字符串与数字转换
//1、字符串转换数字
str = "123";
bool ok = false;
//将字符串转换成int类型,参数1代表转换成功与否,参数2,代表字符串是几进制数
//将16进制 123 转换成10进制数
//同样的还有 toDouble();toFloat();toLong();toLongLong()等
int tempInt = str.toInt(&ok,16);
qDebug() << "toInt " << tempInt;
//2、数字转字符串
//将十进制转为八进制数,存到str中
qDebug() << "将十进制转为八进制数,存到str中 " << str.setNum(16,8);
double numScientific = 456.78999;
//将数字numScientific用科学计数法表示,保留5位小数,存到str中
str.setNum(numScientific, 'e', 5);
qDebug() << "将数字numScientific用科学计数法表示,保留5位小数,存到str中 " <<"Scientific: "<<str;
//将数字numFixed,保留7位小数,存到str中
double numFixed = 123.78999;
str.setNum(numFixed, 'd', 7);
qDebug() << "将数字numFixed,保留7位小数,存到str中 " <<"Fixed: "<<str;
return a.exec();
}