Qt中的字符串类QByteArray功能讲解

得把这话写在前面,不要看到有很多东西都不会就学不下去了,事实上这些不是全部要装到脑子里的,尝试着用的时候就查,现阶段是入门,毕竟之前没接触过,不要心急,勇敢牛牛!!!

字符串类型:

c  => char*

c++ =>std::string

Qt =>QByteArray,QString

QByteArray

在使用这种类型的时候,可以通过这个类的构造函数申请一块动态内存,用于存储我们需要处理的字符串数据。

构造函数

// 构造空对象,里边没有数据
QByteArray::QByteArray();
// 将data中的size个字符进行构造,得到一个字节数组对象
// 如果 size==-1 函数内部自动计算字符串长度,计算方式为:strlen(data)
QByteArray::QByteArray(const char *data,int size=-1);
// 构造一个长度为size个字节,并且每个字节值都为ch的字节数组
QByteArray::QByteArray(int size,char ch);

数据操作

// 在尾部追加数据
// 其他重载的同名函数可参考Qt帮助文档
QByteArray &QByteArray::append(const QByteArray &ba);
void QByteArray::push_back(const QByteArray &other);


// 头部添加数据
// 其他重载的同名函数可参考Qt帮助文档
QByteArray &QByteArray::prepend(const QByteArray &ba);
void QByteArray::push_front(const QByteArray &other);


// 插入数据,将ba插入到数组第i个字节的位置(从0开始)
// 其他重载的同名函数可参考Qt帮助文档
QByteArray &QByteArray::insert(int i,const QByteArray &ba);


// 删除数据
// 从大字符串中删除len个字符,从第pos个字符的位置开始删除
QByteArray &QByteArray::remove(int pos,int len);

// 从字符数组的尾部删除n个字节
void QByteArray::chop(int n);

// 从字节数组的 pos 位置将数组截断(前边部分留下,后边部分被删除)
void QByteArray::truncate(int pos);

// 将对象中的数据清空,使其为null
void QByteArray::clear();


// 字符串替换
// 将字符数组中的 子字符串 before 替换为 after
// 其他重载的同名函数可参考Qt帮助文档
QByteArray &QByteArray::replace(const QByteArray &before,const QByteArray &after);

子字符串查找与判断

// 判断字节数组中是否包含子字符串 
bool QByteArray::contains(const QByteArray &ba) const;
bool QByteArray::contains(const char *ba) const;
// 判断字节数组中是否包含子字符 ch ,包含返回true,否则返回false
bool QByteArray::contains(char ch) const;

// 判断字节数组是否以字符串 ba 开始,是返回true,不是返回false
bool QByteArray::startsWith(const QByteArray &ba) const;
bool QByteArray::startsWith(const char *ba) const;
// 判断字节数组是否以字符 ch 开始,是返回true,不是返回false
bool QByteArray::startsWith(char ch) const;

// 判断字节数组是否以字符串 ba 结尾,是返回true,不是返回false
bool QByteArray:endsWith(const QByteArray &ba) const;
bool QByteArray::endsWith(const char *ba) const;
// 判断字节数组是否以字符 ch 结尾,是返回true,不是返回false
bool QByteArray::endsWith(char ch) const;

遍历

// 使用迭代器
iterator QByteArray::begin();
iterator QByteArray::end();

// 使用数组的方式进行遍历
// i 的取值范围 0<=i<size()
char QByteArray::at(int i) const;
char QByteArray::operator[](int i) const;

查看字节数

// 返回字节数组对象中字符的个数
int QByteArray::length() const;
int QByteArray::size() const;
int QByteArray::count() const;


// 返回字节数组对象中 子字符串ba 出现的次数
int QByteArray::count(const QByteArray &ba) const;
int QByteArray::count(const char *ba) const;

// 返回字节数组对象中 字符串ch 出现的次数
int QByteArray::count(char ch) const;

类型转换

// 将QByteArray类型的字符串转换为char*类型
char *QByteArray::data();
const char *QByteArray::data() const;

// int,short,long,float,double -> QByteArray
// 其他重载的同名函数可参考Qt帮助文档
QByteArray &QByteArray::setNum(int n,int base=10);
QByteArray &QByteArray::setNum(short n,int base=10);
QByteArray &QByteArray::setNum(qlonglong n,int base=10);
QByteArray &QByteArray::setNum(float n,char f='g',int prec=6);
QByteArray &QByteArray::setNum(double n,char f='g',int prec=6);
[static] QByteArray QByteArray::number(int n,int base=10);
[static] QByteArray QByteArray::number(qlonglong n,int base=10);
[static] QByteArray QByteArray::number(double n,char f='g',int prec=6);

//QByteArray -> int ,short, long, float, double
int QByteArray::toInt(bool *ok=Q_NULLPTR,int base=10) const;
short QByteArray::toShort(bool *ok=Q_NULLPTR,int base=10) const;
long QByteArray::toLong(bool *ok=Q_NULLPTR,int base=10) const;
float QByteArray::toFloat(bool *ok=Q_NULLPTR) const;
double QByteArray::toDouble(bool *ok=Q_NULLPTR) const;

// std::string ->QByteArray
[static] QByteArray QByteArray::fromStdString(const std::string &str);
//QByteArray -> std::string
std::string QByteArray::toStdString() const;

//所有字符转换为大写
QByteArray QByteArray::toUpper() const;
//所有字符转换为小写
QByteArray QByteArray::toLower() const;


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值