Qt学习(3)——Qt5中的String(2)

参考:http://zetcode.com/gui/qt5/strings/

字符串长度

有三种方法可以获取字符串长度,分别为size()count()length()。他们返回特定字符串的字符数。

// length.cpp

#include <QTextStream>

int main(void) {

  QTextStream out(stdout);

  QString s1 = "Eagle";
  QString s2 = "Eagle\n"; //包含一个换行符
  QString s3 = "Eagle "; //包含一个空格
  QString s4 = "орел"; // 包含一个俄罗斯字符

  out << s1.length() << endl;
  out << s2.length() << endl;
  out << s3.length() << endl;
  out << s4.length() << endl;

  return 0;
}

输出结果:

$ ./length 
5
6
6
4

字符串构建

动态字符串构建允许我们用实际值替换特定的控制字符。我们使用arg()方法来进行插值。

// building.cpp
#include <QTextStream>

int main() {

   QTextStream out(stdout);

   QString s1 = "There are %1 white roses";
   int n = 12;

   out << s1.arg(n) << endl;

   QString s2 = "The tree is %1 m high";
   double h = 5.65;

   out << s2.arg(h) << endl;

   QString s3 = "We have %1 lemons and %2 oranges";
   int ln = 12;
   int on = 4;

   out << s3.arg(ln).arg(on) << endl;

   return 0;

将被替换的标记以字符开始。以下字符是指定参数的数字。一个字符串可以有多个参数。arg()方法被重载,它可以包含整数,长整数,字符和QChars等等。

   QString s1 = "There are %1 white roses";
   int n = 12;

其中%1是我们要替换的字符,定义为一个整型。

 out << s1.arg(n) << endl;

arg()获取到一个整型,%1被变量n的值代替。

QString s2 = "The tree is %1 m high";
double h = 5.65;

out << s2.arg(h) << endl;

这里是对double类型数据进行替换,arg()自动调用正确的方法。

QString s3 = "We have %1 lemons and %2 oranges";
int ln = 12;
int on = 4;

out << s3.arg(ln).arg(on) << endl;

%1被第一个参数替换,%2被第二个参数替换。
输出结果为:

$ ./building 
There are 12 white roses
The tree is 5.65 m high
We have 12 lemons and 4 oranges

子串

在进行文本处理时,我们需要找到字符串的子字符串。我们left()mid()right() 三种方法。

// substrings.cpp
#include <QTextStream>

int main(void) {

   QTextStream out(stdout);

   QString str = "The night train";

   out << str.right(5) << endl; // 获取5个最右边的字符
   out << str.left(9) << endl;  // 获取9个最左边的字符
   out << str.mid(4, 5) << endl;// 获取从第4个位置开始的5个字符

   QString str2("The big apple");
   QStringRef sub(&str2, 0, 7);

   out << sub.toString() << endl;

   return 0;
}

我们使用了三个方法获取子串,right()获取最右边的字符串,left()获取最左边的字符串,mid()获取从指定位置开始的指定数量的字符串。

QString str2("The big apple");
QStringRef sub(&str2, 0, 7);

QStringref类是一个QString的只读版本。这里我们创建一个str2字符串,使用QStringref获取子串,其中第二个参数是指定位置,第三个是子串的长度。
输出结果:

$ ./substrings 
train
The night
night
The big
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值