当前位置:   article > 正文

关于QString的常见用法(详细讲解)_qstring::compare

qstring::compare

QString类提供一个unicode字符串。在QT软件开发平台中常用到的一种变量类型,其提供了很多方便的应用方法。下面介绍一些关于QString的常见用法。

1.字符串末尾追加

  1. //example 1
  2. QString str="hello";
  3. str.append("world");
  4. qDebug() <<str; //str=hello world
  5. //example 2
  6. QString str="hello";
  7. str=str+"world";
  8. qDebug() <<str; //str=hello world
  9. //example 3
  10. QString str="hello";
  11. str+="world";
  12. qDebug() <<str; //str=hello world

2.取出字符串中指定位置的字符

  1. QString str="hello world";
  2. char ch;
  3. ch=str.at(1).unicode();
  4. qDebug() <<ch; //ch=e

3.从字符串末尾删除若干个字符

  1. QString str="hello world";
  2. str.chop(2);
  3. qDebug() <<str; //str= hello wor

4.清空字符串

  1. //example 1
  2. QString str="hello world";
  3. str.clear();
  4. qDebug() <<str.size(); //str=""
  5. //example 2
  6. QString str="hello world";
  7. str="";
  8. qDebug() <<str.size(); //str=""

5.字符串比较

  1. int x = QString::compare("aUtO", "AuTo", Qt::CaseInsensitive); // x == 0
  2. int y = QString::compare("aUtO", "AuTo", Qt::CaseSensitive); // x > 0
  3. int z = QString::compare("auto", "Car", Qt::CaseSensitive); // y > 0
  4. int k = QString::compare("auto", "Car", Qt::CaseInsensitive); // z < 0
  5. //CaseInsensitive:不区分大小写 CaseSensitive:区分大小写

 6.字符串str1是否包含str2字符串

  1. QString str1 = "Peter Pan";
  2. QString str2 = "peter";
  3. bool rel;
  4. rel=str1.contains(str2, Qt::CaseInsensitive); //CaseInsensitive:不区分大小写
  5. qDebug() <<rel; // returns true

 7.字符串str2在字符串str1中出现过几次

  1. QString str1 = "HELLO world hello world";
  2. QString str2 = "hello";
  3. int rel;
  4. rel=str1.count(str2, Qt::CaseInsensitive); //搜索不区分大小写
  5. qDebug() <<rel; // rel=2

 8.字符串str1是否以str2结尾

  1. QString str = "Bananas";
  2. str.endsWith("anas"); // returns true
  3. str.endsWith("pple"); // returns false

9.搜索字符串str2在字符串str1第一次出现的位置

  1. QString str1 = "sticky question"; //包含了2个 “sti”
  2. QString str2 = "sti";
  3. //从位置0开始搜索
  4. str1.indexOf(str2); // returns 0 (第一次出现位置0))
  5. //从位置1开始搜索
  6. str1.indexOf(str2, 1); // returns 10 (第一次出现位置10))
  7. //从位置10开始搜索
  8. str1.indexOf(str2, 10); // returns 10 (第一次出现位置10)
  9. //从位置11开始搜索
  10. str1.indexOf(str2, 11); // returns -1 (不存在)

10.在字符串str1指定位置中插入str2

  1. QString str1 = "Meal";
  2. QString str2 = "ontr";
  3. str1.insert(1, str2); //从位置1开始插入
  4. // str1 == "Montreal"

11.判断字符串str是否为空,是否没有字符

  1. //字符串没有字符
  2. QString().isEmpty(); // returns true
  3. QString("").isEmpty(); // returns true
  4. QString("x").isEmpty(); // returns false
  5. QString("abc").isEmpty(); // returns false
  6. //字符串为空
  7. QString().isNull(); // returns true
  8. QString("").isNull(); // returns false
  9. QString("abc").isNull(); // returns false

12.计算字符串str长度

  1. QString str = "hello";
  2. int rel=str.length();
  3. qDebug() <<rel; // rel=5

13.从字符串str1中指定位置截取字符

  1. QString str1 = "Nine pineapples";
  2. //从位置5开始截取,截取4个字符
  3. QString str2 = str1.mid(5, 4); // str2 == "pine"
  4. //从位置5开始截取,截取到最后
  5. QString str3 = str1.mid(5); // str2 == "pineapples"

14.从字符串str中指定位置开始移除若干个字符

  1. QString str = "Montreal";
  2. //从位置1开始,移除4个字符
  3. str.remove(1, 4);// str == "Meal"

15.从str1字符串中指定位置开始替换若干个字符

  1. QString str1 = "Say yes!";
  2. QString str2 = "no";
  3. //从位置4开始,替换3个字符
  4. str1.replace(4, 3, str2); // str1 == "Say no!"

16.以指定字符对字符串进行分割,将分割后的某一段取出 

  1. QString str;
  2. QString csv = "forename,middlename,surname,phone";
  3. QString path = "/usr/local/bin/myapp"; // 第一个字段是空的
  4. QString::SectionFlag flag = QString::SectionSkipEmpty;
  5. //以“,”为分隔符,将从左往右的第2段返回
  6. str = csv.section(',', 2, 2); // str == "surname"
  7. qDebug() <<str;
  8. //以“/”为分隔符,将从左往右的第3段到第4段返回
  9. str = path.section('/', 3, 4); // str == "bin/myapp"
  10. qDebug() <<str;
  11. //以“/”为分隔符,将从左往右的第3段(忽略前面的空字段)
  12. str = path.section('/', 3, 3, flag); // str == "myapp"
  13. qDebug() <<str;
  14. //前面符号表示从右往左计数
  15. str = csv.section(',', -3, -2); // str == "middlename,surname"
  16. str = path.section('/', -1); // str == "myapp"
  17. //这里除了可以以单个字符','为分割符外,还可以以"**"字符串为分割符号,可自行实验

17.数字转字符串

  1. QString str;
  2. //10代表以10进制转换成字符串(允许范围2~36)
  3. str.setNum(1234,10); // str == "1234"
  4. //'g'代表精度
  5. str.setNum(12.34,'g',10); // str == "12.34"

18.格式化转化为字符串

  1. QString str;
  2. int value=1998;
  3. str.sprintf("value=%d",value);
  4. qDebug() <<str; //str="value=1998"

19.判断字符串str是否以字符串str2开头

  1. QString str = "Bananas";
  2. str.startsWith("Ban",Qt::CaseSensitive); // returns true
  3. str.startsWith("ban",Qt::CaseInsensitive); // returns true
  4. str.startsWith("Car",Qt::CaseSensitive); // returns false

20.字符串str转化为数值

  1. //example 1 QString >> double
  2. bool d;
  3. d = QString( "1234,56" ).toDouble(&ok); // ok == false
  4. d = QString( "1234.56" ).toDouble(&ok); // ok == true, d == 1234.56
  5. //exapmle 2 QString >> folat
  6. QString str1 = "1234.56";
  7. str1.toFloat(); // returns 1234.56
  8. bool ok;
  9. QString str2 = "R2D2";
  10. str2.toFloat(&ok); // returns 0.0, sets ok to false
  11. //exapmle 3 QString >> int
  12. QString str = "FF";
  13. bool ok;
  14. //16表示十六进制
  15. int hex = str.toInt(&ok, 16); // hex == 255, ok == true
  16. //10表示十进制 转换失败
  17. int dec = str.toInt(&ok, 10); // dec == 0, ok == false

21.将字符串str中所有的字母转化为小写字母或大写字母

  1. //example 1 大写转小写
  2. QString str = "The Qt PROJECT";
  3. str = str.toLower(); // str == "the qt project"
  4. //example 2 小写转大写
  5. QString str = "TeXt";
  6. str = str.toUpper(); // str == "TEXT"

22.从指定位置截断字符串str

  1. QString str = "Vladivostok";
  2. str.truncate(4); // str == "Vlad"

23.QString支持的操作符号有:

用于字符串之间比较:"!="  "<" "<=" "==" ">="

用于字符串之间传递:"+=" "="

 

《聪明在于勤奋,天才在于积累——华罗庚 》

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/300121
推荐阅读
相关标签
  

闽ICP备14008679号