QT学习笔记~QString

一、QString的基本用法

1.字符串的连接

//第一种连接方式
QString str1 = "hello ";
str1 += "world";
//第二种连接方式
str1.append(str2);
//第三种连接方式:arg函数
str = QString(“I bought %1 pounds of %2 apples.).arg(10).arg(“red”);
//第四种连接方式: arg函数
str = str.asprintf(%s”, “Welcome”);
QByteArray ba = str.toLocal8Bit();
const char *c_str = ba.data();
str = QString::asprintf(%s %s %s”, c_str, “to”, “future”);

2.字符串的插入

//1在任意位置插入
str.insert(int, string);    //Params:插入位置,插入的字符串
//在字符串首部插入一个字符串
str.prepend(“hello”);
//替换字符串
str.replace(int, int, string);//Params:替换的位置、替换字符串的长度、替换的字符串
//去掉首尾空格
str.trimmed();
//去掉中间的空格(只保留中间的一个空格)
str.simplified();

3.字符串的查找

//判断一个字符串是否为另一个字符串的前缀
QString str = “ Welcome to you!;
//Params:需要判断的字符串,是否需要大小写敏感.
//其中CaseSensitive为开启大小写识别,CaseInsensitive为关闭大小写识别
//如果不加此参数,则默认开启大小写识别。
str.startWith(“Welcome”, Qt::CaseSensitive);
//判断一个字符串是否为另一个字符串的后缀(参数同前缀)
str.endWith(!);
//判断一个字符串是否包含另一个字符串
str.contains(“to”);

4.字符串的比较

//通过运算符比较字符串(> < >= <= ==)
“a” < “b”;//通过比较ASCII码
//通过函数比较(前面大于后面返回1, 等于返回0, 小于返回-1)
QString::localeAwareCompare(“a”, “b”);//使用本地字符集,与平台有关
QString(“c”).compare(“b”);//使用Unicode编码,与平台无关,且速度比较快

5.字符串的转换

(1)其他类型

str.toInt();
//按照16进制转换
str.toInt(bool, 16);//Params:bool转换成功返回true,否则返回false,参数2为需要转换的进制
//返回一个拉丁文(ISO8859-1)
str.toLatin1();

(2)UTF-8 8Bytes类型

//返回Utf-8编码的8位字符串
str.toUtf8();
//返回一个系统本地(locale)编码的8位字符串
str.toLocal8Bit();

二、其他补充知识

1.QT内置输出流

qDebug()<< *****;//内有自动换行

2.NULL和Empty的区别

(1) NULL:QString 的默认构造函数(QString()),构造函数创建对象为NULL。
(2) empty:长度为0的字符串;
(3)如果一个QString对象是NULL,那么一定是empty;但是如果是empty,则不一定是NULL;

3.正则表达式的简单使用

此处使用的为QRegularExpression类

QString text = “This is some text: text123, Text321, ttxxaa”;
	//(?i)表示忽略大小写, t表示查找的字符, \w表示查找字符后的任意位
	QString pattern =(?i)t\\w+;
	
	QRegularExpression re(pattern);
	QRegularExpressionMatch match =  re.match(text);
	while(match.hasMatch())
	{
		qDeBug()<<match.captured();
		re.match(text, match.capturedEnd());
	}

4.常用数学公式

//绝对值
qAbs(int/double);
//最大值
qMax(int/double, int/double);
//取整函数 (四舍五入)
qRound(int/double);
//交换函数
qSwap(int/double, int/double);
//正弦函数
qSin(3.14/2);//此参数为弧度制
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 将QStringList转换为QString可以使用QString的join()函数,将QStringList中的所有元素连接成一个字符串,中间可以指定分隔符。 例如: QStringList list; list << "apple" << "banana" << "orange"; QString str = list.join(", "); // str为"apple, banana, orange" 另外,如果只需要将QStringList中的第一个元素转换为QString,可以使用QStringList的value()函数: QStringList list; list << "apple" << "banana" << "orange"; QString str = list.value(); // str为"apple" ### 回答2: 在Qt中,有时候我们需要将QStringList转换为QString来进行某些操作。QStringList是一种字符串列表,而QString是一种字符串类型。因此,我们需要将QStringList中的每个字符串逐个添加到QString中,形成一个完整的字符串Qt提供了两种方式来实现QStringList到QString的转换:使用join()函数和使用for循环。 1. 使用join()函数 join()函数可以将一个字符串列表中的所有字符串连接起来,用一个分隔符隔开。这个分隔符可以是空格、逗号、分号或任何其他符号。 例如,我们有个QStringList lst,包含三个字符串:"apple","banana","orange"。 我们可以使用以下代码来将这个字符串列表转换成一个用逗号隔开的字符串QString str = lst.join(","); join()函数会将列表中的所有字符串连接起来,并将它们用逗号隔开,形成一个新的字符串"apple,banana,orange"。我们可以把这个字符串用作需要使用QString的任何操作。 2. 使用for循环 我们也可以使用for循环遍历QStringList中每个字符串,并将其添加到一个新的QString中。例如: QStringList lst; lst << "apple" << "banana" << "orange"; QString str; for(int i = 0; i < lst.size(); i++) { str += lst.at(i); } 这个for循环会遍历lst列表中的每个字符串,并将其添加到新的QString对象str中。在循环结束后,str将包含所有字符串拼接成的新的字符串。 无论是使用join()函数还是for循环,都可以将QStringList转换成QString对象供我们使用。这些方法非常简单,任何人都可以轻松掌握。 ### 回答3: 在Qt编程中,QStringList是一种用于保存一组字符串的简单数据结构,而QString则是Qt中最基本的字符串类型。有时候我们需要将QStringList转换为QString类型,这可以通过一些简单的方法来实现。 一种比较简单的方法就是使用QString的join方法。这个方法可以将一个QStringList中的所有元素组合成一个字符串,并且可以在每个元素之间添加一个分隔符。代码如下: ```cpp QStringList list; list << "a" << "b" << "c"; QString str = list.join(","); // str的值为 "a,b,c" ``` 另一种方法是使用QString的append方法。需要遍历QStringList中的每个元素,并逐个将它们添加到一个QString中。在每个元素之后,我们也可以选择添加一个分隔符。代码如下: ```cpp QStringList list; list << "a" << "b" << "c"; QString str; for (int i = 0; i < list.size(); ++i) { if (i != 0) { str.append(","); } str.append(list.at(i)); } // str的值为 "a,b,c" ``` 总结起来,将QStringList转换成QString有以上两种方法,主要取决于自己的编程习惯以及项目中的需求。不过需要注意的是,在字符串之间添加分隔符时,需要特别注意不要在最后一个字符串之后添加分隔符,以免导致字符串末尾出现多余的分隔符。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值