前言
之前用到QT中QString的用法,但总是忘记,这次自己整理出来,自己想用可以随时查看,同时也可以帮助到大家。
一、QString与其他变量的转换
int,float,double转换为QString
1、QString::number();
例如:
int a = 20;
QString s = QString::number(a, 10); //转换为十进制 s == "20"
QString s = QString::number(a, 16); //转换为十六进制 s == "14"
2、QString(“%”).arg();
例如:
int a = 8;
QString s = QString("%1").arg(a); // s == "8"
解释(%1为占位符)
3、QString转换为 double类型
QString s = "8.88";
double a = s.toDouble(); //a = 8.88
4、QString转换为 float类型
QString s = "8.88";
float a = s.toFloat(); //a = 8.88
5、QString转换为int
Qstring s="FF";
bool ok;
int dec=s.toInt(&ok,10); //转为十进制dec=255 ; ok=rue
int hex =s.toInt(&ok,16); //转为十六进制hex=255;ok=true;
6、QString转换为char *
QString qstr("hello,word");
const char * p = qstr.toLocal8Bit().data();
7、QString转换为QByteArray
QByteArray byte;
QString string;
byte = string.toLocal8Bit();本地编码
byte = string.toUtf8() 中文
二、QString类函数
1.追加字符 append
QString str = "hello";
str += "world"; //str = "helloworld"
str.append("test"); //向后追加:str = "helloworldtest"
str.prepend("This is "); //向前追加:str = "This is helloworldtest"
2.组合字符QString(%1)
QString str;
str = QString("%1 %2 %3 %4").arg("This").arg("is").arg("a").arg("test"); //str = "This is a test"
3.清除指定子串remove
QString str = "Hello World";
QString ss = str.remove("l"); //ss = "Heo Word"(移除指定字符串l)
4.字符串提取mid、left、right
QString s = "QString";
QString ss = s.mid(1,3); //ss = "Str"(从第1 个后截取后面3个字符)
QString s = "QString";
QString ss = s.mid(1); //ss = "String"(省略第二个参数表示从position开始截取到末尾)
QString s = "QString";
QString ss = s.left(4); //ss = "QStr"(截取前4个字节并返回)
QString s = "QString";
QString ss = s.right(3); //ss = "ing"(截取最后3个字节并返回)
5.判断某个字符是否存在(contains)
存在字符返回true,否则返回false
QString s = "QString";
bool b = s .contains("ing",Qt::CaseSensitive) //true
6.判断字符串是否是isEmpty
bool isEmpty () const//原型
QString().isEmpty(); // returns true
QString("").isEmpty(); // returns true
QString("x").isEmpty(); // returns false
7.判断字符串是否NULL
bool isNull () const//原型
QString().isNull(); // returns true
QString("").isNull(); // returns false
QString("abc").isNull(); // returns false
8.分割字符串split
取出3个字符串
QString str = "You,I,She";
QStringList list= str.split(","); //根据“,”来分割字符串,list.at(0) = "You", list.at(1) = "I", list.at(2) = "She"
过滤头尾空白字符串 trimmed
QString s(" abc def ghi ");
s = s.trimmed(); //s = "abc def ghi"
9.大小写切换toUpper、toLower
切换全大写
QString s = "Hello";
QString ss = s.toUpper(); //ss = "HELLO"
切换全小写
QString s = "Hello";
QString ss = s.toLower(); //ss = "hello"
10.判断是否以某个字符串开始或结束startsWith、endsWith
QString s = "http:www.baidu.com";
bool i = s.startsWith("http:"); //返回true
bool i = str.endsWith("com"); //返回true
11.获取字符串长度count、length(中文也只能算一个字符)
QString s = "Hello World";
获取长度:s.count(); //11
获取字串出现次数 s.count("l"); //3
获取长度:s.length(); //11
12.查找字符串获取第一次出现位置索引
QString x = "std::string & QString";
QString y = "ing";
表示从第0个开始,整个字符第8个位置
x.indexOf(y); // return 8
表示从第10个开始,整个字符第18个位置
xx.indexOf(y,10); // return 18
表示从第18个开始,后续无法查找到y
x.indexOf(y,19); // return -1
13.插入(insert)
QString s = "hello world";
s = s.insert(6,","); //往s的第六位插入, s = "hello ,world"
14.替换replace
QString str = "white man";
str.replace(0 , 5, "Black"); //结果str为“Black man”
15.删除尾部字符chop
QString str = "white man";
str.chop(4); //结果str为“Black”