如何在qt6中使用replaceFirst和replaceLast

这篇具有很好参考价值的文章主要介绍了如何在qt6中使用replaceFirst和replaceLast。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

如何在qt6中使用replaceFirst和replaceLast

在qt6中replace默认是replaceAll的,没有replaceFirst和replaceLast,但是可以运用QString提供的以下两个方法现实

qsizetype QString::indexOf(const QString &str, qsizetype from = 0, 
							Qt::CaseSensitivity cs = Qt::CaseSensitive) const
QString &QString::replace(qsizetype position, qsizetype n, const QString &after)

indexOf方法说明

返回此字符串中第一个字符串str的索引位置,从中的索引位置向前搜索。如果找不到str,则返回-1。
如果cs是Qt::CaseSensitive(默认值),则搜索区分大小写;否则,搜索不区分大小写。

不区分大小写用Qt::CaseInsensitive
from默认值为0,从左往右搜索,如果from为-1,则搜索从最后一个字符开始;如果是-2,则在倒数第二个字符处,依此类推。

 QString x = "sticky question";
 QString y = "sti";
 x.indexOf(y);               // returns 0
 x.indexOf(y, 1);            // returns 10
 x.indexOf(y, 10);           // returns 10
 x.indexOf(y, 11);           // returns -1

replace方法说明

将从索引位置开始的n个字符替换为后面的字符串,并返回对此字符串的引用。
注意:如果指定的位置索引在字符串内,但位置+n超出字符串范围,则n将被调整为停止在字符串的末尾。

例如,从第4个位置开始替换3个字符

    QString x = "Say yes!";
    QString y = "no";
    qDebug() << x.replace(4, 2, y);

    x = "Say yes!";
    y = "no";
    qDebug() << x.replace(4, 3, y);

    x = "Say yes!";
    y = "no";
    qDebug() << x.replace(4, 4, y);


    x = "Say yes!";
    y = "no";
    qDebug() << x.replace(4, 5, y);

输出文章来源地址https://www.toymoban.com/news/detail-693948.html

"Say nos!"
"Say no!"
"Say no"
"Say no"

replaceFirst和replaceLast具体实现

QString replaceFirst(QString &str,const QString &before,const QString &after,
						Qt::CaseSensitivity cs= Qt::CaseSensitive){
    return str.replace(str.indexOf(before,cs),before.length(),after);
}

QString replaceLast(QString &str,const QString &before,const QString &after,
						Qt::CaseSensitivity cs= Qt::CaseSensitive){
    return str.replace(str.lastIndexOf(before,cs),before.length(),after);
}

测试代码

#include <QApplication>
#include <QString>
#include <QRegularExpression>
#include <QDebug>


QString replaceFirst(QString &str,const QString &before,const QString &after,
					Qt::CaseSensitivity cs= Qt::CaseSensitive){
    return str.replace(str.indexOf(before,cs),before.length(),after);
}

QString replaceLast(QString &str,const QString &before,const QString &after,
					Qt::CaseSensitivity cs= Qt::CaseSensitive){
    return str.replace(str.lastIndexOf(before,cs),before.length(),after);
}

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    QString ss = "aabbccbbccbb";
    qDebug() << replaceFirst(ss,"bb","");
    ss = "aabbccBbccbB";
    qDebug() << replaceLast(ss,"bB","");
    
    return a.exec();
}

输出结果

"aaccbbccbb"
"aabbccBbcc"

到了这里,关于如何在qt6中使用replaceFirst和replaceLast的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Qt6】QWidgetAction 的使用

    在开始主题前,先看一个 C++ 例子: 不要问这个例子的功能,问就是超能力。其实这个例子没啥功能,纯粹是为了运行后出错而写的。有同学会疑惑:这程序好像没啥问题。嗯,看着是没啥问题,我们预期的情况是:a 的值是 100,b 的值是 300。 遗憾的是,运行结果是这样的:

    2024年02月14日
    浏览(36)
  • Qt6.5.1+WebRTC学习笔记(十一)开发环境搭建(ubuntu22.04)

    win10开发测试已经一段时间了,最近将程序移植到ubuntu测试了下,改动不是很大,本教程记录下环境搭建过程 1.操作系统ubuntu22.04 64位 x86架构(建议更新到最新) 2.合理的上网方式,需要正常访问google,最好有40G以上流量 3.安装git,并设置代理 4.安装depot_tools depot_tools是包含下载

    2024年02月09日
    浏览(46)
  • Qt6.5.1+WebRTC学习笔记(十)开发环境搭建(win10+vs2022)

    1.操作系统win10 64位 2.合理的上网方式,需要正常访问google,最好有40G以上流量 3.安装VS2022,笔者使用的是社区版,并选中C++相关,笔者设置如下        注意,win10的sdk需要是10.0.22621.0,其他版本可能导致编译不通过,而且这个版本会根据webrtc源码的更新而发生变化  4.安装

    2024年02月08日
    浏览(38)
  • Qt6.3.2下QChart的使用

    Qt小白。 看了很多关于QCharts的使用说明。一直没能在Qt6.3.2下使用成功。总结一下失败经验。 环境:win11,Qt6.3.2 选择在线安装,安装的时候选择6.3.2,下面的additional library全选 生成新工程后,如果直接用QChart是会有各种奇怪错误。需要在CMakeList.txt中增加两行: 其他代码的写

    2023年04月21日
    浏览(29)
  • windows11下Qt6.5开发环境安装及QT for Android环境搭建(含虚拟机的创建)

    最近想升级Qt6.5及顺便配置Android开发环境。于是在网上找了各种教程,结果在配置Android开发环境都以失败告终。最终花了很长时间才搞掂。接下来分享比较好的安装方法以及安装注意事项。 建议用中科大或清华的镜像下载在线安装器,官网的很慢。链接如下: 下载在线安装

    2024年02月13日
    浏览(47)
  • 详解QT6.5在线下载—使用国内镜像

    建议去国内的镜像网站下,官网很慢 清华大学:Index of /qt/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror 北京理工大学:http://mirror.bit.edu.cn/qtproject/ 中国互联网络信息中心:Index of /qt/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror 推荐使用清华大学的网站 Index of /qt

    2024年02月15日
    浏览(52)
  • 使用 Qt6-mingw 编译 OpenCV 源码

    Qt 6.6.0 win11 x86_64 网址: https://cmake.org/download/ 选择对应的版本下载 将 cmake.exe 所在的 bin 目录添加到环境变量中 网址: https://opencv.org/releases/ 选择对应的版本下载 Source资源包 解压 “opencv-4.9.0.zip”, 将其解压的 “opencv-4.9.0” 存放到指定路径 “Path” (例如在我的电脑上 “Path”

    2024年01月24日
    浏览(33)
  • 使用Python和Qt6(PySide6)创建GUI应用1简介

    在本书从GUI开发的基本原理逐步过渡到使用PySide6创建您自己的、功能齐全的桌面应用程序。 图形用户界面(GUI Graphical User Interface) 历史悠久,可追溯到20世纪60年代。斯坦福大学的NLS(ON-Line 系统引入了鼠标和窗口概念,并于1968年首次公开展示。随后,施乐公司于1973年推出

    2024年02月04日
    浏览(34)
  • opencv系列(1)--使用opencv和Qt6做一个视频监控器人脸识别

    这个程序是自己的下班之后,看看那个坏东西想来偷看我的电脑。我就随手做的一个程序。 1.能都显示摄像头的内容。 2.如果有人进入摄像头。 3.利用opencv的模型识别人脸,识别到了就保存到自己的电脑里面。 4.并把他的照片显示到界面上一段时间,告诉他,偷窥有罪。 5.程

    2024年02月11日
    浏览(25)
  • 【VisualStudio】使用 C++ 语言开发 Qt 环境配置教程

    知识不是单独的,一定是成体系的。更多我的个人总结和相关经验可查阅这个专栏:Visual Studio。 先上一张效果图,具体步骤主要分为以下三步。 这一步不再赘述,注意一定要安装 C++ 语言。 可以参考这个教程 Visual Studio 2022安装与使用教程。 这一步也不再赘述,网上搜索教

    2024年02月10日
    浏览(63)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包