- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章QString的常用方法(小结)由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
简介 。
QString 字符串被每个GUI程序所使用,不仅是用户界面,还有数据结构.
C++原生提供两种字符串: 传统的C风格以'\0'结尾的字符数组和std::string类。与这些不同,QString使用16-bit Unicode值 当使用QString时,我们不必操心如此隐秘的细节,像分配足够的内存或者是数据是'\0'结尾的。 总的来说,QString可以被认为是一个QChar向量。一个QString能嵌入'\0'字符。 length()函数返回整个字符串大小,包括嵌入的'\0'.
追加字符串 。
QString提供一个二元+操作符来连接两个字符串和一个+=操作符来向一个字符串追加字符串.
例如:
1
2
3
4
|
QString
str
=
"A"
;
QString str2
=
"D"
;
str
=
str
+
"B"
;
str2
+
=
"E"
;
|
结果为, str为“AB”,str2为“DE” 。
组合字符串 。
(1)使用QString的sprintf()函数 。
例如:
1
2
|
QString
str
;
str
.sprintf(
"%s %.1f%%"
,
"Value"
,
100.0
);
|
结果str被赋值为 “Value 100.0%”.
(2)使用arg() 。
例如:
1
2
|
QString
str
;
str
=
QString(
"%1,%2"
).arg(
"aa"
).arg(
"bb"
);
|
结果str为“aa,bb” 。
数字转换为字符串 。
(1)使用静态函数QString::number() 例如:
1
|
str
=
QString::number(
38.5
);
|
(2)使用setNum()函数 。
1
|
str
.setNum(
38.5
);
|
字符串转换为数字 。
使用的是toInt(), toLongLong(), toDouble()…等等.
例如:
1
2
|
QString
str
=
"12"
;
int
i
=
str
.toInt();
|
提取字符串 。
(1) mid()函数返回一个给定起始位置(第一个参数)和长度(第二个参数)的字串.
例如:
1
2
|
QString
str
=
"white man"
;
QString str2
=
str
.mid(
6
,
2
);
|
结果str2为“ma” 。
(2)如果省略第二个参数,mid()返回从指定的起始位置到这个字符串结尾的子串.
1
2
|
QString
str
=
"white man"
;
QString str2
=
str
.mid(
6
);
|
结果str2为“man” 。
(3)left()函数返回最前面的n个字符 。
1
2
|
QString
str
=
"white man"
;
QString str2
=
str
.left(
5
);
|
结果str2为“white” 。
(4)right()函数返回最后面的n个字符 。
1
2
|
QString
str
=
"white man"
;
QString str2
=
str
.right(
3
);
|
结果str2为“man” 。
判断字符串是否包含 。
如果我们希望找出一个字符串是否包含某个字符,字符串,或者正则表达式,我们可以使用QString的indexOf()函数.
1
2
|
QString
str
=
"white man"
;
int
i
=
str
.indexOf(
"man"
);
|
结果,i为6,若不存在为-1.
判断字符串是否以某物开始或者结束 。
(1)以某物开始,使用startsWith()函数 。
1
2
|
QString str =
"http:www.baidu.com"
;
int
i = str.startsWith(
"http:"
);
|
结果为i = 1; 。
(2)以某物结束,使用endsWith()函数 。
1
2
|
QString str =
"http:www.baidu.com"
;
int
i = str.endsWith(
"com"
);
|
结果为i = 1; 。
大小写切换 。
(1)切换为大写,使用toUpper()函数 。
1
2
|
QString str =
"FileName"
;
QString str2 = str.toUpper();
|
结果str2为“FILENAME” 。
(2)切换为小写,使用toLower()函数 。
1
2
|
QString str =
"FileName"
;
QString str2 = str.toLower();
|
结果str2为“filename” 。
字符串替换 。
(1)用一个字符串替换另一个字符串的某一部分,可以用replace()函数 。
1
2
|
QString str =
"white man"
;
str.replace(0 , 5,
"Black"
);
|
结果str为“Black man” 。
(2)删除从位置n开始的m个字符,使用remove(n,m)函数 。
1
2
|
QString str =
"white man"
;
str.
remove
(6,3);
|
结果str为“white” 。
(3)在位置n插入某个字符串,使用insert(int, QString)函数 。
1
2
|
QString str =
"white man"
;
str.insert(6,
"strong "
);
|
结果str为“white strong man” 。
过滤空白字符 。
从字符串的两端删除空白符,使用trimmed(),
1
2
|
QString str =
" white man "
;
QString str2 = str.trimmed();
|
结果str2为“white man” 。
分割字符串 。
一个字符串能被分成为一个装有子串的QStringList,通过使用QString::split() 。
1
2
|
QString str =
"white black yellow"
;
QStringList color = str.split(
" "
);
|
结果color.at(1)为“white”, color.at(2)为“black”,color.at(3)为“yellow” 。
判断字符串是否为空 。
调用isEmpty()或检查length()是否为0就可以达到目的.
1
2
|
if
(str.isEmpty()){}
if
(str.length() == 0){}
|
const char * 转为 QString 。
(1)隐式转换(自动) 。
例如:
1
|
str
=
"( 121 )"
;
|
(2)显式转换 。
简单地使用一个QString cast,或者调用fromAscii()或fromLatin1()函数 。
QString 转为 const char * 。
使用toAscii()或toLatin1()。 这些函数返回一个QByteArray,它能被转换为一个const char *,通过使用QByteArray::data()或QByteArray::constData().
例如:
1
2
|
QString
=
"(1178)"
str
.toAscii().data();
|
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我.
原文链接:https://blog.csdn.net/xuhui_liu/article/details/72833102 。
最后此篇关于QString的常用方法(小结)的文章就讲到这里了,如果你想了解更多关于QString的常用方法(小结)的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
为什么 Qt 5.1.0 Release Candidate 函数 QString::replace(const QRegExp & rx, const QString & after) 以某种方式处
我想知道最有效的方法是将保存为 QString 的二进制文件转换为相应的十六进制并将其保存在同一个 QString 中 QString value = "10111100" 进入 value = "b
我从文件中读取了两个 QString (ValueOne,ValueTwo)(只是一个基本示例) int main(int argc, char *argv[]) { QString x =
请注意 QString 和 & 之间的空格。我想知道在QT中,QString&和QString &之间有什么区别吗? 最佳答案 不,没有区别。它是纯 C++ 语法。 C++ 可以被认为是一种与空格无关
我有这样的东西: void ReadFileAndConvert () { QFile File (Directory + "/here/we/go"); if(File.open(Q
我终于在 Eclipse 中运行了 C++/QT 项目。但是当我尝试包括例如QString 我只得到代码完成中提供的 qstring.h,手动输入 QString 也可以。 我检查了只包含 qstri
我非常想找到关于上述错误的任何信息。 我正在使用 visual studio 2010。当我在调试或发布中编译我的项目(32 位)时,我收到以下消息: 1>heterogeneous.obj : er
因为我不是 C(++) 专家,所以我被编译器的一些固执所困扰,不想将 QString 转换为 QString*。我有一个功能: bool getNextMessage(int sId, QString
比较2 QString是否更快s 包含数字,或转换那些 QString s 到数字然后比较数字? 那么哪个更快? QString str1,str2; if(str1.compare(str2)==0
我对使用指针和引用感到困惑,我遇到了一个小问题。 我有一个函数: bool myObject::isFlag( QString &pArgument) const { } 我正在使用它: QStrin
我需要一个优雅的 C++ 函数,它采用包含 unix 时间的 QString 参数(例如 1295874681)并将其转换为包含 QString 的标准时间格式(例如 Mon, 24 Jan 2011
如果 QString 是本地的,那么用 QString 发出信号的正确方法是什么。我的意思是我在 wigdetA 中有这样的功能 void wigdetA::something() { // //e.
我关注 QObject : #ifndef UETYPES #define UETYPES #include #include #include #include #include #inc
我尝试使用 foreach 遍历 QHash 并获取 QHash 中的每一对,然后获取它们的键和值,以便我可以将它们附加到字符串。 这是我的 QString Packet::Serialize() {
如何使用 QMap::const_iterator作为指针? QMap::const_iterator *i = map -> constBegin(); while (i !=
在我的项目中,我需要将十六进制 QString ("c2a774657374") 转换为 UTF-8 编码的 QString ("§test") 我当前的函数 (HexToAscii) 确实将十六进制
我想将另一个类 的 QString 转换为 Int,但它似乎失败了,因为结果是 0 而它应该是 5 并且其余代码有效.因为我是 C/Qt 的新手并且发现类有点困惑,所以我认为我的类做错了什么。 小部件
我在用 C++ 编写的 GUI 项目中使用了 Qt 4.8.4。现在我合并到 Qt 5.7 版。经过长时间调整我的代码后,我终于打开了我的 GUI。但是当我运行我的计算代码时,我仍然得到这个错误: 没
我对 qt 和 C++ 比较陌生,我很难理解为什么我可以在头文件中声明以下内容: const char* CONSIGNMENT_TAG_DONATE = "DTag"; 或 QString CONS
QString 文档 http://doc.qt.io/qt-5/qstring.html#arg说 One advantage of using arg() over sprintf() is th
我是一名优秀的程序员,十分优秀!