一个QString类型字符串,如何去掉其中的某一特定字符,比如“n”

一个QString类型字符串,如何去掉其中的某一特定字符,比如“n”,第1张

QString的以下成员函数可以用于删除某一特定字符:

QString &QString::remove(QChar ch, Qt::CaseSensitivity cs = Qt::CaseSensitive)

例如:

QString t = "A\nB\nC";
tremove(QChar('\n'), Qt::CaseInsensitive);
// 结果为:t == "ABC"

也可以使用QString的replace成员函数将某一特定字符替换为空字符来实现删除的效果。

关于QString的remove和replace成员函数都有多个重载,适用于不同的入参。

详细说明请参考官方帮助文档:网页链接

QString number() 函数可以将int、float、double等常见数据转换成QString。具体 *** 作如下:

首先有些可以直接强制转换,比如float a; int b=(int)a; 强制转换下但可能会造成损失,不能强制转换的可以参照下边内容。

1、int  ~~>  QString  

//即可把a转换成QString

2、float/double  ~~>  QString

 //得到123,第二个参数是转换类型,见下边倒数第二个重构函数,最后一个参数是精确位数。

3、 QString——QByteArray

在UART通讯时传输的数据类型要求时QByteArray,得到的QString或者int等类型需要转换成QByteArray,其实很简单,直接。

其他数据类型想转QByteArray可以先转成QString再转到QByteArray。
很简单直接to就提醒了。

4、16进制——int——QString——float

将格式该为16后得到的就是"ff"16进制的字符串类型。

反过来如果要一个"ff"的16进制字符串转换成10进制整数

参照上图中的QStringtoInt(bool ok=nullptr, base =10)函数,将base该为16即可。如

如果 numtoInt(&ok,10); 这样,返回的则是0! 

5、16进制自动补零

在组帧的时候会用到这种 *** 作。让每个数据占用固定的字节。

//k为int型或char型都可,得到的 key 为 000f。

6、保留指定小数位数与科学计数法

这个可以不用正则表达式,如果两边的长度是固定,你可以看下QString的left和right函数

QString r = "017F00000[12:10:51525]0180100000";    rremove(QRegExp("[0-9]{2}(:[0-9]{2}){2}([0-9]{1,3})"));
rremove("[]");你可以这样写,我使用转义也无法匹配[],所有最后再把中括号去掉

可以参考下面的代码:

m_FilePath="/root/desktop

"

intfirst=m_FilePathlastIndexOf("/");

QStringtitle=m_FilePathright(m_FilePathlength()-first-1);

扩展资料:

QString类中函数的作用举例:

字符串连接函数

1、QString也重载的+和+=运算符。这两个运算符可以把两个字符串连接到一起。

2、QString的append()函数则提供了类似的 *** 作,例如:

str="User:";

strappend(userName);

strappend("\n");

QString x = "asdasd\tdsdasd";
int a=xindexOf("\t"); //return 6
QString y = xleft(a);
首先是获得到\t的位置,然后获得指定位置的字符串


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/13406249.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-30
下一篇 2023-07-30

发表评论

登录后才能评论

评论列表(0条)

保存