QByteArray使用方法大全

时间:2021-11-06 15:58:52

QByteArray

在Qt中QByteArray可以看做是c语言中 char*的升级版本。我们在使用这种类型的时候可通过这个类的构造函数申请一块动态内存,用于存储我们需要处理的字符串数据。

下面给大家介绍一下这个类中常用的一些API函数,大家要养成遇到问题主动查询帮助文档的好习惯

  • 构造函数

    // 构造空对象, 里边没有数据
    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);
  • 子字符串查找和判断

    // 判断字节数组中是否包含子字符串 ba, 包含返回true, 否则返回false
    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;