首页 > 技术知识 > 正文

QString常见用法详解(二) 与Std::string 相互转换

1.std::string转QString Std::string str = “asd”; QString qStr = QString::fromStdString(str); QString转std::string QString qStr = “asd”; Std::string str = qStr.toStdString();

判断是否包含子字符串

contains() 可指定是否区分大小写。 QString str1=”Qt”; Bool b=str1.contains (“QT”, Qt::CaseInsensitive) ; // b=true,不区分大小写 Bool b=str1.contains (“QT”, Qt::CaseSensitive) ; // b=false,区分大小写

查找子字符串第一次出现位置

indexOf() 返回此字符串中第一次出现的字符串str的索引位置,从索引位置向前搜索。 如果找不到str,则返回-1。 lastIndexOf()函数,返回字符串的最后一次出现的索引。 如果cs是Qt :: CaseSensitive(默认),则搜索区分大小写; 否则搜索不区分大小写。 区别:indexOf()方法从字符串的开头向后搜索字符串,而lastIndexOf()方法是从字符串的末尾向前搜索子字符串。

QString str = “sticky question”; qDebug() << str.indexOf(“sti”);//0 qDebug() << str.indexOf(“sti”,1);//10 qDebug() << str.indexOf(“sti”,10);//10 qDebug() << str.indexOf(“sti”,11);//-1 qDebug() << str.lastIndexOf(“sti”);//10 qDebug() << str.lastIndexOf(“sti”,1);//0 qDebug() << str.lastIndexOf(“sti”,10);//10 qDebug() << str.lastIndexOf(“sti”,11);//10 字符串截取

mid() 函数接受两个参数,第一个是起始位置,第二个是取串的长度。如果省略第二个参数,则会从起始位置截取到末尾 QString x = “Nine pineapples”; QString y = x.mid(5, 4);// y == “pine” QString z = x.mid(5); // z == “pineapples” left()、rigt() 这两个函数类似,都接受一个int类型的参数n,都是对字符串进行截取。不同之处在于,left()函数从左侧截取n个字符,而right()从右侧开始截取。 QString x = “Pineapple”; QString y = x.left(4); // y == “Pine” QString z = x.right(4);//z==pple

删除

Remove() 删除指定位置 QString s = “Montreal”; s.remove(1, 4); // s == “Meal” 删除指定字符 QString s = “Montreal”; s.remove(o); qDebug() << s;//Mntreal

插入

insert 指定位置插入字符串 QString str = “Meal”; str.insert(1, QString(“ontr”)); // str == “Montreal”

数字转换

字符串转数字 QString s = “123.2”; qDebug() << s.toInt(); qDebug() << s.toDouble(); 数字转字符串 double i = 123.21; qDebug() << QString::number(i);//”123″ qDebug() << QString::number(i,f,2);//”123.21″

替换

QString & QString::replace ( int position, int n, const QString & after )

QString x = “Say yes!”; QString y = “no”; x.replace(4, 3, y); // x == “Say no!”

猜你喜欢