Qt中的QString和QStringList常用方法
QString
//QString定义
QString s1 = "abc";
QString s2("hello");
//字符串连接
QString s = s1 + s2;
//组包
s = QString("a = %1, b = %2, c = %3").arg(250).arg("hello").arg(22.22);
qDebug()<<s;
//输出结果:a = 250, b = hello, c = 22.22
s = "a=250,b=hello,c=22.22";
//参数表示按逗号分隔, 拆分出第0段到第1段, 保存到tmp
QString tmp = s.section(",", 0, 1);
qDebug()<<"tmp = "<<tmp;
//输出结果:tmp="a=250"
tmp = tmp.section("=", 1, 1);
qDebug()<<"tmp="<<tmp;
//输出结果:tmp="250";
//QString转int
int a = tmp.toInt();
qDebug()<<"a="<<a;
//输出结果:a=250;
//int转QString组包方式转
tmp = QString("%1").arg(123);
qDebug()<<"tmp="<<tmp;
//输出结果:tmp="123"
//int转QString函数方式转
tmp = QString::number(234);
//char *转QString
const char * buf = "hello, world";
QString ss = buf;
qDebug()<<"ss = "<< ss;
//std::string转QString
string s = "hello, world"
QString ss = QString::fromStdString(s);
qDebug()<<"ss = "<< ss;
//std::wstring转QString
std::wstring wstr(L"你好, 世界");
QString ss = QString::fromStdWString(wstr);
qDebug()<<"ss = "<< ss;
//字符数组转QString
char buf2[100] = "hello world";
ss = buf2;
qDebug()<<"ss = "<<ss;
//QString转char *
ss = "hello abc";
//如果没有中文:
QByteArray tmp = ss.toLatin1();
char * buf3 = tmp.data();
//如果有中文:
QByteArray tmp = ss.toLocal8Bit();
char * buf4 = tmp.data();
//替换QString中字符串
QString text("text-decoration: none");
text.replace("none", "underline");
//去除QString首尾的空格(包括'\t', '\n', '\v', '\f', '\r')
QString text(" text-decoration: none ");
text = text.trimmed();
//字符移除操作
QString test = "hello,china";
QString tmp = test.remove(2, 4); //从下标2的字符开始, 移除4个字符
qDebug() << "test = " << test; //输出hechina
qDebug() << "tmp = " << tmp; //输出hechina
//判断字符是否以某字符或字符串开始
QString test= "@192.168.0.1";
if(true == test.startsWith("@"))
{
//do something
}
//判断QString是否空
QString().isEmpty(); // return true
QString("").isEmpty(); // return true
QString(" ").isEmpty(); // return false
QString("abc").isEmpty(); // return false
QString().isNull(); // return true
QString("").isNull(); // return false
QString(" ").isNull(); // return false
QString("abc").isNull(); // return false
QStringList
//定义
QStringList list;
//添加字符串
list << "hello";
list << "world";
list.append("abc");
//例子2
QStringList chinaMonth;
chinaMonth
<< QStringLiteral("正月")
<< QStringLiteral("二月")
<< QStringLiteral("三月")
<< QStringLiteral("四月")
<< QStringLiteral("五月")
<< QStringLiteral("六月")
<< QStringLiteral("七月")
<< QStringLiteral("八月")
<< QStringLiteral("九月")
<< QStringLiteral("十月")
<< QStringLiteral("冬月")
<< QStringLiteral("腊月")
;
//打印
qDebug()<< "list ="<< list;
//遍历
for(int i = 0; i< list.size();++i)
{
QString tmp = list.at(i);
qDebug()<<"tmp ="<< tmp;
}
//使用QStringList拆分QString
QString str = "hello,world,abc,qt";
QStringList list2 = str.split(",");
qDebug()<<"list2="<<list2;
//输出:list2=("hello","world","abc","qt");
//判断QStringList中是否包含某个成员
bool b = list2.contains("123");
//移除QStringList中的成员
list2.removeOne("abc");
Qt中的QString和QStringList常用方法的更多相关文章
- 【转载】Qt中的QString,QByteArray,Qchar, char*
先要说的是QString. 之所以把QString单独拿出来,是因为string是很常用的一个数据结构,甚至在很多语言中,比如JavaScript,都是把string作为一种同int等 ...
- PyQt的QString 和 QStringList
在Qt的C++实现中的QString 和 QStringList 在Python的实现中等效替换为 "str1" 和 ["str1","str2&qu ...
- 第11课 Qt中的字符串类
1. 历史遗留问题和解决方案 (1)历史遗留问题 ①C语言不支持真正意义上的字符串 ②C语言用字符数组和一组函数实现字符串操作 ③C语言不支持自定义类型,因此无法获得字符串类型 (2)解决方案 ①从C ...
- Qt中 QString 和int, char等的“相互”转换
转载:http://blog.csdn.net/ei__nino/article/details/7297791 Qt中 int ,float ,double转换为QString 有两种方法 1.使用 ...
- Qt中 QString 和int, char等的“相互”转换,关键是QString.toLocal8Bit().data();
Qt中 int ,float ,double转换为QString 有两种方法 1.使用 QString::number(); 如: long a = 63; QString s = QString:: ...
- Qt 中QString 字符串操作:连接、组合、替换、去掉空白字符
Qt中的字符串类 QString类 保存了16位Unicode值,提供了丰富的操作.查询和转换等函数. QString 字符串有如下几个操作符: (1) "+" 用于组合两个字符串 ...
- 4.关于QT中的QFile文件操作,QBuffer,Label上添加QPixmap,QByteArray和QString之间的区别,QTextStream和QDataStream的区别,QT内存映射(
新建项目13IO 13IO.pro HEADERS += \ MyWidget.h SOURCES += \ MyWidget.cpp QT += gui widgets network CON ...
- QT中QString 与 int float double 等类型的相互转换
Qt中 int ,float ,double转换为QString 有两种方法 1.使用 QString::number(); 如: long a = 63; QString s = QString:: ...
- Qt中QString、QByteArray、int、double之间转换
最近写Qt中的tcp网络编程,Socke连接后,接受到的数据类型是字节型,这就涉及到了大量的类型转换,在网上辗转几辄,总算有了点结果,特此跟大家分享.好了,不废话,下面细说. 方法/步骤 1. ...
随机推荐
- java实现Kafka生产者示例
使用java实现Kafka的生产者 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 3 ...
- 【iOS开发】在ARC项目中使用非ARC文件
ARC的出现应该说是开发者的一大福利,苹果是推荐使用的,但是因为之前没有ARC机制,好多比较好的类库都是使用的非ARC,或是有些大牛还是不喜欢用ARC,封装的类也是非ARC的,想要在自己的ARC项目中 ...
- vuejs electron webpack集成使用
传统的vue SPA页面在浏览器环境中使用,但是有的时候我们还希望能够做成一个类似于桌面的app在PC上使用,希望不仅可以使用所有的浏览器SPA的功能,你也可能外加host os的功能,比如文件的本地 ...
- Jmeter入门--安装教程
jmeter简介 Apache JMeter是Apache组织开发的基于Java的压力测试工具.用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域. 它可以用于测试静态和动 ...
- springmvc常用的组件,注解,跳转
路径映射 XXXHandlerMapping 随开发配置越来越多 注解到java代码中来简化xml配置 请求到哪个Controller 控制器bean Controller 随着开发配置越来越多 注解 ...
- SpringBoot部署流程
一. 项目介绍 a) 本项目为SpringBoot项目 b) 使用内置Tomcat容器 一. 操作步骤 a) 配置pom.xml文件,确定打包方式 b) 更改项目返 ...
- ASP.NET MVC 4 RC的JS/CSS打包压缩功能
打包(Bundling)及压缩(Minification)指的是将多个js文件或css文件打包成单一文件并压缩的做法,如此可减少浏览器需下载多个文件案才能完成网页显示的延迟感,同时通过移除JS/CSS ...
- 026.2 网络编程 UDP聊天
实现,通过socket对象 ##############################################################需求建立UDP发送端:###思路:1.建立可以实 ...
- PHP设计模式系列 - 中介者模式
中介者模式 中介者模式用于开发一个对象,这个对象能够在类似对象相互之间不直接相互的情况下传送或者调解对这些对象的集合的修改.一般处理具有类似属性,需要保持同步的非耦合对象时,最佳的做法就是中介者模式. ...
- Spring 源码阅读之BeanFactory
1. BeanFactory 的结构体系如下: 2. XmlBeanFactory ,装载Spring配置信息 package org.springframework.beans.factory.xm ...