Qt之QString字符串类的详细介绍及功能函数示例用法

 

前序:为了加深对Qt各个类的认识和了解,决定以后再闲暇的时间对Qt类进行详细的阅读(基于Qt cteater 的帮助文档),这样既可以提高自己的英文阅读能力,也可以对各个类有一个更加深入的认识和了解。


注:整个对Qt的拆解和分析都是基于Qt 5.80

.开始啃帮助文档。以下总结不会对帮助文档全篇内容翻译,会在自己翻译的基础上加上自己的理解,进行一个简单的总结,以便在使用时忘记的时候复习查看。

目录

1.Detailed Description(详细描述)

2.Public Functions 公有的函数

2.1 类对象的构造

2.2 追加字符串(前追加prepend or push_front和后追加append or push_back)

2.3 组合字符串(arg)

2.4 字符串的裁剪(chop,truncate,resize,remove)

2.5 字符串的比较(compare,constData)

2.6 判断字符串是否存在(contains)

2.7 判断字符串出现的次数(count)

2.8 字符串的大小长度(count,size,length)

2.9 判断字符串是否以某一个子串开始(startsWith)

2.9 判断字符串是否以某一个串结尾(endsWith)

2.11 查找字符串获取第一次出现位置索引(indexof)

2.12 查找字符串获取最后一次出现位置索引(lastIndexof)

2.13 字符串的插入(insert,left,leftJustified,rightJustified)

2.14 字符串的分割(mid)

2.15 字符串的删除(remove)

2.16 字符串的替换(replace)

2.17 字符串的截取(section)

2.18 字符串的裁剪(fill)

2.19 字符串的简化(simplified,trimmed)

2.20 分隔字符串 (split)

2.22 字符串------>数(toDouble,toInt......)

2.23 数------>QString字符串(setNum,number)

2.24 字符串的大小写转换(toLower,toUpper)

2.25 其他(at,begin,end,isEmpty,isNull,clear)

3. 字符串的重载



1.Detailed Description(详细描述)

             ①、首先QString字符串类是提供的基于Unicode的字符串。QString存储一个16位的QChar字符串,每个QChar对应一个Unicode 4.0字符,占用两个字节。②、同时,QString采取了implicit sharing(隐式共享)的技术(copy-on-write写时拷贝),这样可以减少内存的使用,避免不必要的复制数据。

QString的常用操作大致包括字符串类对象的构造

2.Public Functions 公有的函数

2.1 类对象的构造

QString()           // 构造一个空串(null string)
QString(const QChar *unicode, int size = -1) // 构造QString类以QChar数组,以‘\0’为结尾
QString(QChar ch)  // 以一个QChar字符构造QString
QString(int size, QChar ch) // 以size个QChar字符构造QString类
QString(QLatin1String str)  //使用str(单字节编码)构造QString
QString(const QString &other)  // 使用其他的QString类other构造改QString类
QString(const char *str)       // 使用字符数组构造QString类
QString(const QByteArray &ba)  //使用字节数组ba构造QString类

下面对上面的构造函数中一些常用的进行示例:

1、构造函数--->QString::QString(const QChar *unicode, int size = -1)
示例:
    const QChar str[] = {'D','a','e','m','o','n','\0'}  ;
    QString s(str) ;
    qDebug() << s ;

  

2、构造函数--->QString::QString(int size, QChar ch)
示例:
QChar qc('q') ;
QString qs( 6 , qc );
qDebug() << qs ;

 

  

3、构造函数--->QString::QString(QLatin1String str)
示例:
    QLatin1String ql("QLatin1String") ;
    QString qs( ql );
    qDebug() << qs ;

4、构造函数--->QString::QString(const char *str)
示例:
    const char str[] = " Daemon";
    QString s( str ) ;
    qDebug() << s ;

5、构造函数--->QString::QString(const QByteArray &ba)
示例:
    const QByteArray ba("Hello DataBase") ;
    QString s( ba ) ;
    qDebug() << s ;

2.2 追加字符串(前追加prepend or push_front和后追加append or push_back)

QString s(" Qt ") ;   // s = " Qt "
const QChar str[] = {' ','e','x','a','m','p','l','e','\0'}  ;
s.append(str,8) ;     // s = “Qt  example”
s += " is";           // s = “Qt  example is ”
s.push_back(" innovative"); // s =  “Qt  example is innovative"
s.push_front("Daemon ") ;   // s =  "Daemon  Qt  example is innovative"
qDebug() << s ;

2.3 组合字符串(arg)


1、QString arg(const QString &a,int fieldWidth = 0,QChar fillChar = QLatin1Char(' ')) const
注释:如果后两个参数按照默认的设置,函数的功能将First, arg(i) replaces %1. Then arg(total) replaces %2.
 Finally, arg(fileName) replaces %3.以此类推。(numbers must be in the range 1 to 99.)
示例:
     QString i(QString::number(007));
     QString total("series");
     QString fileName("Movies ");
     QString status = QString("%1 is %2 of %3").arg(i).arg(total).arg(fileName);
     qDebug() << status ;

 但是仔细研究帮助文档的话,里面可以挖掘出额外的东西出来,见下:

2、QString arg(const QString &a,int fieldWidth = 0,QChar fillChar = QLatin1Char(' ')) const
第二个参数fieldWidth指定参数a应占用的最小空间量,如果a需要的空间小于fieldWidth,则使用字符fillChar填充到fieldWidth。
fieldWidth为正值时产生右对齐的文本。
fieldWidth为负值时产生左对齐的文本。
默认填充fillChar为空格,可自定义填充QChar字符。
     QString para1("Git");
     QString para2("GitHub");
     QString para3("Better Study Heaven");
     QString status = QString("%1 and %2 is %3").arg(para1 , -5 , QChar('a') )
                                                .arg( para2 , 8 , QChar('b') )
                                                .arg( para3 , -para3.length()-5 ) ;
     qDebug() << status ;

3、QString arg(int a,int fieldWidth=0,int base = 10,QChar fillChar= QLatin1Char(' '))const
注释:此重载函数较前面的函数多路一个参数base,默认为10.其值必须在2~36
(which is 10 by default and must be between 2 and 36.),
其功能用于声明第一个参数a需要以base进制进行输出显示。
示例:
QString para1("65535");
    QString para2(" hexadecimal number ");
    QString status = QString("%1 and %2 is %3").arg(para1).arg( para2 )
                                               .arg( 65535 , 0 , 16 ) ; //将65535以16进制显示
    qDebug() << status ;

  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值