当前位置:   article > 正文

QT 对QString字符串的操作_qstring 移除右边

qstring 移除右边

QString是QT提供的字符串类,相应的也就提供了很多很方便对字符串的处理方法。这里把这些对字符串的操作做一个整理和总结。

1. 将一个字符串追加到另一个字符串的末尾

  1. QString str1 = "hello ";
  2. QString str2 = "world";
  3. str1.append(str2); // str1 = "hello world"
  4. str1.append(" !"); // str1 = "hello world !"
  5. // 对字符串直接 + 另一个字符串也可以实现,但是不对原本的字符串进行操作
  6. QString str3 = str1 + str2 + " !"; // str3 = "hello world !" str1 = "hello "

2. 从字符串中查找某个字符串

  1. QString x = "sticky question";
  2. QString y = "sti";
  3. int iPos = x.indexOf(y); // 返回0
  4. // 函数indexOf()会返回要查找的字符串在字符串中第一次出现的位置
  5. // 如果没有要查找的字符串,返回-1

3.从字符串中查找某个字符串最后出现的位置

  1. QString strPath = ".C://Users/XXX/Desktop/111.txt";
  2. int iPos = strPath.lastIndexOf("."); // iPos值为26
  3. // 函数indexOf()会返回要查找的字符串在字符串中最后一次出现的位置
  4. // 如果没有要查找的字符串,返回-1
  5. // 一般用于获取一个文件路径后,判断文件的后缀名

4. 用某个字符填满字符串

  1. QString str = "Hello";
  2. str.fill('x'); // str == "xxxxx"
  3. str.fill('A', 2); // str == "AA"

5. 判断字符串是否为空

  1. QString().isEmpty(); // 返回 true
  2. QString("").isEmpty(); // 返回 true
  3. QString(" ").isEmpty(); // 返回 false
  4. QString("abc").isEmpty(); // 返回 false

6. 判断字符串是否存在

  1. QString().isNull(); // 返回 true
  2. QString("").isNull(); // 返回 false
  3. QString("abc").isNull(); // 返回 false

7. 从左向右截取字符串

  1. QString str = "Hello World !";
  2. QString str1 = str.left(5); // str1 = "Hello"

8. 从中间截取字符串

  1. QString str = "I love C++!";
  2. QString str1 = str.mid(2, 4); // str1 == "love"
  3. QString str2 = str.mid(2); // str2 == "love C++!"

9. 截取字符串中最右边几个字符

  1. QString str = "I love C++!";
  2. QString str1 = str.right(4); // str = I love C++! str1 = "C++!"

10. 删除字符串中的最后几个字符

  1. QString str = "Hello World !";
  2. str.chop(8); // str = "Hello"

11. 删除字符串中间某个字符

  1. QString str = "Hello World!";
  2. str.remove(5, 6); // str = "Hello!"

12. 指定位置插入字符串

  1. QString str = "Hello!";
  2. str.insert(5, QString(" World")); // str = "Hello World!"

13. 用几个字符替换字符串中的几个字符

  1. QString x = "Say yes!";
  2. QString y = "no";
  3. x.replace(4, 3, y); // x = "Say no!"
  4. x.replace("yes", "no"); // x = "Say no!"

14.字符串补零到指定位

  1. QString str = "A6";
  2. //如果要把str补全到8位,空位用0补全
  3. QString str1 = QString("%1").arg(str, 8, QLatin1Char('0')); //str1 = "000000A6"
  4. //arg里第一个参数是要补全的字符串,第二个参数是要补全到的位数,第三个参数是用什么字符补全,可以不是0的其他字符

15.整型十进制转为十六进制字符串并补零到指定位

  1. int n = 66;
  2. //如果要把n转换为十六进制并补全到8位
  3. QString str = QString("%1").arg(n, 8, 16, QLatin1Char('0')); // str = "00000042"
  4. //arg里第一个参数是十进制整型的数,第二个参数是要补全到的位数,第三个参数是要转换的进制,可以是十六进制也可以是十进制
  5. //第四个参数是用什么字符补全,可以不是0的其他字符

16. 以某个字符切割字符串

  1. QString csv = "forename,middlename,surname,phone";
  2. QString path = "/usr/local/bin/myapp";
  3. //section()会把字符串以第一个参数的符号切割分成数个字符串,后面两个参数是得到的字符串的开始和结束的位置
  4. QString str;
  5. str = csv.section(',', 2, 2); // str = "surname"
  6. str = path.section('/', 3, 3); // str = "bin"
  7. str = path.section('/', 3, 4); // str = "bin/myapp"
  8. str = path.section('/', 3, 3, QString::SectionSkipEmpty); // str = "myapp"

17. 以某个字符切割字符串另一种方法

  1. QString str = "a,,b,c";
  2. QStringList list1 = str.split(',');
  3. // list1: [ "a", "", "b", "c" ]
  4. QStringList list2 = str.split(',', QString::SkipEmptyParts);
  5. // list2: [ "a", "b", "c" ]

18. 检查字符串是否以某个字符串开头或结尾

  1. QString str = "http://www.baidu.com";
  2. str.startsWith("http:"); // 返回true
  3. str.endsWith("cn"); // 返回false
  4. //这个方法比left()和right()要简单快速,通常用来检查路径或者网址

19. 比较两个字符串是否相等

  1. QString str1 = "xxx";
  2. QString str2 = "XXX";
  3. //localeAwareCompare()会比较两个参数的大小,如果str1小于str2,返回小于0的数,等于返回0,大于返回大于0的数
  4. QString::localeAwareCompare(str1, str2) // 返回 -1
  5. //localeAwareCompare()的比较区分大小写,想要不区分大小写,可以使用toLower()或toUpper()使字符串全变成小写或大写
  6. if(QString::localeAwareCompare(str1.toUpper(), str2) == 0)
  7. {
  8. qDebug() << "str1和str2相等"; // 返回0,输出:str1和str2相等
  9. }

20. 去除字符串两侧的空白字符(空白字符包括空格、Tab以及换行符,而不仅仅是空格)

  1. QString str = " xxx ";
  2. QString str1 = str.trimmed(); // str1的值为"xxx"

 

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

闽ICP备14008679号