QT QStringList 与 QString 常用方法

QT QStringList 与 QString 常用方法本文汇集了QString与(QStringList|QByteArray)之间的转换,以及QString、QStringList的一些常用方法。

大家好,又见面了,我是你们的朋友全栈君。

本文汇集了QString 与 (QStringList | QByteArray)之间的转换,以及QString、QStringList的一些常用方法。

QString 转 QByteArray

//method<1>
QString src1("hello kandy");
QByteArray ba1 = src1.toUtf8();

//method<2>
QString src2("hello kandy");
QByteArray ba2 = src2.toLatin1();

QByteArray 转 QString

//method<1>
QByteArray ba1("hello world");
QString str1 = ba1;

//method<2>
QByteArray ba2("hello world");
QString str2;
str2.prepend(ba2);

QStringList 转 QString

QStringList listemp;
listemp << "Apple" << "Grape" << "Orange" << "Banana";
QString str = listemp.join(",");
qDebug() << "\r\nstr:" << str;
//输出结果如下
//str: "Apple,Grape,Orange,Banana"

QString转 QStringList

QString strtmp = "apple:5.99;grape:12.5;orange:6.99";
QStringList fruits = strtmp.split(";");
qDebug() << "\r\nfruits:" << fruits;
//fruits: ("apple:5.99", "grape:12.5", "orange:6.99")

//
for(int i=0; i < fruits.size(); i++)
{ 
   
    QStringList fruit = fruits[i].split((":"));
    qDebug() << "fruit:" << fruit;
    /* fruit: ("apple", "5.99") fruit: ("grape", "12.5") fruit: ("orange", "6.99") */
}

QStringList 其他常用方法

//使用QStringList拆分QString
QString str = "hello,world,I,am,kandy";
QStringList strlist = str.split(",");
qDebug() << "strlist=" << strlist;
//输出:strlist=("hello","world","I","am","kandy");

//判断QStringList中是否包含某个成员
bool bcontain = strlist.contains("kandy");
qDebug() << "bcontain=" << bcontain;

//移除QStringList中的成员
strlist.removeOne("world");
qDebug() << "after removeOne, strlist=" << strlist;

QString 其他常用方法

//QString定义
QString s1 = "hello";
QString s2("world");

//字符串连接
QString str = s1 + s2;

//组包
str = QString("a=%1, b=%2, c=%3").arg("hello").arg("world").arg("12.34");
qDebug() << str;//"a=hello, b=world, c=12.34"

str = "a=hello, b=world, c=12.34";
//参数表示按逗号分隔,拆分出第0段到第1段
QString tmp = str.section(",", 0, 1);
qDebug() << "tmp=" << tmp;
//tmp= "a=hello, b=world"

//参数表示按逗号分隔,拆分出第0段到第0段
tmp = str.section(",", 0, 0);
qDebug() << "tmp=" << tmp;
//tmp= "a=hello"


//QString转char *

//如果没有中文(即字符串为ASCII):
QString ss1 = "hello test";
QByteArray byte1 = ss1.toLatin1();
char * szbuff1 = byte1.data();

//如果有中文(即字符串为Unicode):
QString ss2 = QString::fromStdWString(L"你好, 世界");
QByteArray byte2 = ss2.toLocal8Bit();
char * szbuff2 = byte2.data();

//替换QString中字符串
QString text("text-decoration: none");
text.replace("none", "underline");
qDebug() << "after replace, text=" << text;

//字符移除操作
QString sztmp = QString("hello,china").remove(2, 4); //从下标2的字符开始, 移除4个字符
qDebug() << "sztmp=" << sztmp; //输出hechina

//判断字符是否以某字符或字符串开始/结束(startsWith/endsWith)
if (QString("@192.168.0.1#").startsWith("@"))
{ 
   
	qDebug() << "startsWith(\"@\")";
}
if (QString("@192.168.0.1#").endsWith("#"))
{ 
   
	qDebug() << "endsWith(\"#\")";
}

//判断QString是否空
qDebug() << "QString().isEmpty()" << QString().isEmpty();			//true
qDebug() << "QString("").isEmpty()" << QString("").isEmpty();		//true
qDebug() << "QString(" ").isEmpty()" << QString(" ").isEmpty();		//false
qDebug() << "QString(\"hi\").isEmpty()" << QString("hi").isEmpty();	//false

qDebug() << "QString().isNull()" << QString().isNull();				//true
qDebug() << "QString("").isNull()" << QString("").isNull();			//false
qDebug() << "QString(" ").isNull()" << QString(" ").isNull();		//false
qDebug() << "QString(\"hi\").isNull()" << QString("hi").isNull();	//false
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/132417.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 什么是渗透_mitotracker deep red

    什么是渗透_mitotracker deep red0x00简介Mimikatz是一款功能强大的轻量级调试神器,通过它你可以提升进程权限注入进程读取进程内存,当然他最大的亮点就是他可以直接从lsass.exe 进程中获取当前登录系统用

    2022年8月6日
    7
  • vscode html注释快捷键_史上最全vscode配置使用教程

    vscode html注释快捷键_史上最全vscode配置使用教程点击上方蓝字“前端码头”一起玩耍工欲善其事,必先利其器。想要优雅且高效的编写代码,必须熟练使用一款前端开发工具。但前端开发工具数不胜数,像HBuilder、SublimeText、WebStorm、VisualStudioCode……等等,其中VSCode以其轻量且强大的代码编辑功能和丰富的插件生态系统,独受前端工师的青睐。网上有很多vscode的配置以及使用博客,但都没有…

    2022年6月11日
    96
  • layer 弹出层传递参数

    layer 弹出层传递参数layer弹出层轻量好用,一直喜欢用,但是却没有弹出层传参的接口,迫于无奈只能Url地址传参,总所周知,这个可是限制大小的,百度一番,看看大神们怎么处理,结果就感觉所有回答都是Ctrl+C加Ctrl+V,全是地址栏传参,页面缓存、cookie、localstorage,本着不甘心的原则,就想为什么不能在open的时候把参数一起作为属性传递了,强行看了layer源码(扒光慢慢看),于是乎…

    2022年7月13日
    12
  • 证书与签名(一):数字签名是什么[通俗易懂]

    证书与签名(一):数字签名是什么[通俗易懂]文章由阮一峰翻译,作者为DavidYoud。用图片通俗易懂地解释了,”数字签名”(digitalsignature)和”数字证书”(digitalcertificate)到底是什么。  原文网址:http://www.youdzone.com/signature.html  阮一峰:http://www.ruanyifeng.com/blog/2011/08/what_is_a_di

    2022年6月12日
    34
  • js页面刷新或关闭时弹框消失_js刷新页面如何保留页面内容

    js页面刷新或关闭时弹框消失_js刷新页面如何保留页面内容onbeforeunload事件属性  定义:在即将离开当前页面(刷新或关闭)时执行JavaScript,例如:<script>window.onbeforeunload=function(e){e.returnValue=(“确定离开当前页面吗?”);}</script>  用法:onbeforeunload事件在…

    2025年7月9日
    3
  • CSS绘画三角形

    CSS绘画三角形本案例使用CSS绘画了一个三角形的图案。预览演示地址:https://tympanus.net/codrops-playground/SaraSoueidan/kFTn9yJk/editor将下面的代码复制到演示地址对应位置即可查看效果&lt;!–HTML–&gt;&lt;divclass="container"&gt;&lt;divclass="eleme…

    2022年6月26日
    28

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号