首页 > 其他分享 >QT字符串QString

QT字符串QString

时间:2024-07-16 09:40:53浏览次数:14  
标签:返回 字符 QT str1 QString str 字符串

QString

#include<QString>

  1. 追加字符
QString str1 = "hello ";
QString str2 = "world";
str1.append(str2);                   // str1 = "hello world"
str1.append(" !");                   // str1 = "hello world !"
// 对字符串直接 + 另一个字符串也可以实现,但是不对原本的字符串进行操作
QString str3 = str1 + str2 + " !";   // str3 = "hello world !"   str1 = "hello "
  1. 从字符串中查找某个字符串
QString x = "sticky question";
QString y = "sti";
int iPos = x.indexOf(y);              // 返回0
// 函数indexOf()会返回要查找的字符串在字符串中第一次出现的位置
// 如果没有要查找的字符串,返回-1

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

QString strPath = ".C://Users/XXX/Desktop/111.txt";
int iPos = strPath.lastIndexOf(".");  // iPos值为26
// 函数indexOf()会返回要查找的字符串在字符串中最后一次出现的位置
// 如果没有要查找的字符串,返回-1
// 一般用于获取一个文件路径后,判断文件的后缀名
  1. 用某个字符填满字符串
QString str = "Hello";
str.fill('x');             // str == "xxxxx"
str.fill('A', 2);          // str == "AA"
  1. 判断字符串是否为空
QString().isEmpty();            // 返回 true
QString("").isEmpty();          // 返回 true
QString(" ").isEmpty();         // 返回 false
QString("abc").isEmpty();       // 返回 false
  1. 判断字符串是否存在
QString().isNull();             // 返回 true
QString("").isNull();           // 返回 false
QString("abc").isNull();        // 返回 false
  1. 从左向右截取字符串
QString str = "Hello World !";
QString str1 = str.left(5);         // str1 = "Hello"
  1. 从中间截取字符串
QString str = "I love C++!";
QString str1 = str.mid(2, 4);       // str1 == "love"
QString str2 = str.mid(2);          // str2 == "love C++!"
  1. 截取字符串中最右边几个字符
QString str = "I love C++!";
QString str1 = str.right(4);        // str = I love C++! str1 = "C++!"
  1. 删除字符串中的最后几个字符
QString str = "Hello World !";
str.chop(8);                        // str = "Hello"
  1. 删除字符串中间某个字符
QString str = "Hello World!";
str.remove(5, 6);                   // str = "Hello!"
  1. 指定位置插入字符串
QString str = "Hello!";
str.insert(5, QString(" World"));   // str = "Hello World!"
  1. 用几个字符替换字符串中的几个字符
QString x = "Say yes!";
QString y = "no";
x.replace(4, 3, y);                 // x = "Say no!"
x.replace("yes", "no");             // x = "Say no!"

14.字符串补零到指定位

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

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

int n = 66;
//如果要把n转换为十六进制并补全到8位
QString str = QString("%1").arg(n, 8, 16, QLatin1Char('0'));   // str = "00000042"
//arg里第一个参数是十进制整型的数,第二个参数是要补全到的位数,第三个参数是要转换的进制,可以是十六进制也可以是十进制
//第四个参数是用什么字符补全,可以不是0的其他字符
  1. 以某个字符切割字符串
QString csv = "forename,middlename,surname,phone";
QString path = "/usr/local/bin/myapp";
//section()会把字符串以第一个参数的符号切割分成数个字符串,后面两个参数是得到的字符串的开始和结束的位置
QString str;
str = csv.section(',', 2, 2);       // str = "surname"
str = path.section('/', 3, 3);      // str = "bin"
str = path.section('/', 3, 4);      // str = "bin/myapp"
str = path.section('/', 3, 3, QString::SectionSkipEmpty);      // str = "myapp"
  1. 以某个字符切割字符串另一种方法
QString str = "a,,b,c";
QStringList list1 = str.split(',');
// list1: [ "a", "", "b", "c" ]
QStringList list2 = str.split(',', QString::SkipEmptyParts);
// list2: [ "a", "b", "c" ]
  1. 检查字符串是否以某个字符串开头或结尾
QString str = "http://www.baidu.com";
str.startsWith("http:");            // 返回true
str.endsWith("cn");                 // 返回false
//这个方法比left()和right()要简单快速,通常用来检查路径或者网址
  1. 比较两个字符串是否相等
QString str1 = "xxx";
QString str2 = "XXX";
//localeAwareCompare()会比较两个参数的大小,如果str1小于str2,返回小于0的数,等于返回0,大于返回大于0的数
QString::localeAwareCompare(str1, str2)          // 返回 -1
//localeAwareCompare()的比较区分大小写,想要不区分大小写,可以使用toLower()或toUpper()使字符串全变成小写或大写
if(QString::localeAwareCompare(str1.toUpper(), str2) == 0)
{
    qDebug() << "str1和str2相等";                // 返回0,输出:str1和str2相等
}
  1. 去除字符串两侧的空白字符(空白字符包括空格、Tab以及换行符,而不仅仅是空格)
QString str = " xxx ";
QString str1 = str.trimmed();

21.QString其他有用的用法

QString::arg()用法
 QString str = QString("%1 %2 %3").arg(1).arg(2.0).arg("hello");
%1, %2, %3作为占位符,将被后面的arg()函数中的内容依次替换,比如%1将被替换成1,%2将被替换成2.0,%3将被替换成"hello"。输出为:"1 2 hello"
QString::sprintf用法
QString
str.sprintf("%d %s", 10, "hello");

标签:返回,字符,QT,str1,QString,str,字符串
From: https://www.cnblogs.com/checha/p/18304548

相关文章

  • 字符串反转、句子逆序 题目
    题目HJ12字符串反转描述输入描述:输出描述:示例:分析:代码:大佬代码:HJ13句子逆序描述输入描述:输出描述:示例:分析:代码:大佬代码:HJ12字符串反转描述接受一个只包含小写字母的字符串,然后输出该字符串反转后的字符串。(字符串长度不超过1000)输入描述:输入一行,为一个......
  • 算法思想总结:字符串
    一、最长公共前缀.-力扣(LeetCode)思路1:两两比较 时间复杂度mn 实现findcomon返回两两比较后的公共前缀classSolution{public:stringlongestCommonPrefix(vector<string>&strs){//两两比较stringret=strs[0];size_tn=strs......
  • 力扣第八题——字符串转换整数
    题目介绍请你来实现一个 myAtoi(strings) 函数,使其能将字符串转换成一个32位有符号整数。函数 myAtoi(strings) 的算法如下:空格:读入字符串并丢弃无用的前导空格("")符号:检查下一个字符(假设还未到字符末尾)为 '-' 还是 '+'。如果两者都不存在,则假定结果为正。转换:......
  • 【QT开发】SQL查询QSqlQuery类详解及实战应用
    QSqlQuery是Qt提供的一个功能强大且灵活的SQL查询类,能够方便地与数据库进行交互。通过本篇文章的学习,你应该对QSqlQuery有了全面的理解,能够在自己的项目中正确使用它。QSqlQuery在用户界面中帮助你更好地管理和处理数据库数据,实现高效的数据库操作,有助于创建用户友好和高效......
  • 第六章字符串及正则表达式
    字符串的常用操作点击查看代码示例6-1字符串的相关操作1#大小写转换s1='HELLOWORLD'new_s2=s1.lower()print(s1,new_s2)new_s3=s1.upper()print(new_s3)#字符串的分隔e_mail='[email protected]'lst=e_mail.split('@')print('邮箱名:',lst[0],'邮箱服务器:',......
  • 字符串专题
    哈希好用的哈希模数:unsignedlonglong/longlong自然溢出\(2654435769\)(存疑)\(1610612741\)(极力推荐)\(998244353\),\(10^9+7\)(经典,貌似容易被×)提供一种\(N\)模数哈希的写法:LuoguP3546#include<bits/stdc++.h>#defineintlonglong#definelllonglong#define......
  • Qt-绘制运动方向控制按钮
    源代码:qianqiu10000/myDirectionButton效果图:↓1.在AutoCAD中绘制自己想要的按钮轮廓2.调整CAD中的坐标系,与Qt窗口坐标系一致,如图所示Y方向朝下3.继承QWidget,按照CAD中的坐标点绘制,并添加一些颜色变化#ifndefMYDIRECTIONBUTTON_H#defineMYDIRECTIONBUTTON_H#inclu......
  • 记录解决QT父子窗口互传值、一些数据类型转换问题
    @目录一、父子窗口互相传值①父向子窗口传递值②子向父窗口传递值二、数据类型转换①int转QString②int转16进制③QString转unsignedchar④unchar转QString⑤char转int⑥QByteArray转16进制一、父子窗口互相传值①父向子窗口传递值父.hprivateslots:voidon_btnMore_c......
  • Qt UI线程中使用QThread::sleep有什么影响
    在Qt中,QThread::sleep 是一个静态函数,用于让当前线程休眠指定的时间,以实现线程暂停的目的。当在UI线程中调用 QThread::sleep 函数时,会导致UI线程在指定的时间内被阻塞,即界面无法响应用户的操作,直到休眠时间结束。因此,在UI线程中使用 QThread::sleep 可能会导致界面冻结,影响......
  • 【力扣 709】转换成小写字母 C++题解(字符串)
    给你一个字符串s,将该字符串中的大写字母转换成相同的小写字母,返回新的字符串。示例1:输入:s=“Hello”输出:“hello”示例2:输入:s=“here”输出:“here”示例3:输入:s=“LOVELY”输出:“lovely”提示:1<=s.length<=100s由ASCII字符集中的可打印字符组......