一、字符串类型:
Qt 中支持多种字符串类型,如:
C → char*
C++ → std::string
Qt → QByteArray、QStering
二、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);
// 在尾部追加数据QByteArray &QByteArray::append(const QByteArray &ba);void QByteArray::push_back(const QByteArray &other);// 头部添加数据QByteArray &QByteArray::prepend(const QByteArray &ba);void QByteArray::push_front(const QByteArray &other);// 插入数据, 将ba插入到数组第 i 个字节的位置(从0开始)QByteArray &QByteArray::insert(int i, const QByteArray &ba);// 删除数据// 从大字符串中删除len个字符, 从第pos个字符的位置开始删除QByteArray &QByteArray::remove(int pos, int len);void QByteArray::chop(int n); // 从字符数组的尾部删除 n 个字节// 从字节数组的 pos 位置将数组截断 (前边部分留下, 后边部分被删除)void QByteArray::truncate(int pos);void QByteArray::clear(); // 将对象中的数据清空, 使其为null// 字符串替换// 将字节数组中的 子字符串 before 替换为 afterQByteArray &QByteArray::replace(const QByteArray &before, const QByteArray &after);
// 判断字节数组中是否包含子字符串 ba, 包含返回true, 否则返回falsebool QByteArray::contains(const QByteArray &ba) const;bool QByteArray::contains(const char *ba) const;// 判断字节数组中是否包含子字符 ch, 包含返回true, 否则返回falsebool QByteArray::contains(char ch) const;// 判断字节数组是否以字符串 ba 开始, 是返回true, 不是返回falsebool QByteArray::startsWith(const QByteArray &ba) const;bool QByteArray::startsWith(const char *ba) const;// 判断字节数组是否以字符 ch 开始, 是返回true, 不是返回falsebool QByteArray::startsWith(char ch) const;// 判断字节数组是否以字符串 ba 结尾, 是返回true, 不是返回falsebool QByteArray::endsWith(const QByteArray &ba) const;bool QByteArray::endsWith(const char *ba) const;// 判断字节数组是否以字符 ch 结尾, 是返回true, 不是返回falsebool 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 -> QByteArrayQByteArray &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, doubleint 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::stringstd::string QByteArray::toStdString() const;// 所有字符转换为大写QByteArray QByteArray::toUpper() const;// 所有字符转换为小写QByteArray QByteArray::toLower() const;
三、QString:
// 构造一个空字符串对象QString::QString();// 将 char* 字符串 转换为 QString 类型QString::QString(const char *str);// 将 QByteArray 转换为 QString 类型QString::QString(const QByteArray &ba);
// 尾部追加数据QString &QString::append(const QString &str);QString &QString::append(const char *str);QString &QString::append(const QByteArray &ba);void QString::push_back(const QString &other);// 头部添加数据QString &QString::prepend(const QString &str);QString &QString::prepend(const char *str);QString &QString::prepend(const QByteArray &ba);void QString::push_front(const QString &other);// 插入数据, 将 str 插入到字符串第 position 个字符的位置(从0开始)QString &QString::insert(int position, const QString &str);QString &QString::insert(int position, const char *str);QString &QString::insert(int position, const QByteArray &str);// 删除数据// 从大字符串中删除len个字符, 从第pos个字符的位置开始删除QString &QString::remove(int position, int n);// 从字符串的尾部删除 n 个字符void QString::chop(int n);// 从字节串的 position 位置将字符串截断 (前边部分留下, 后边部分被删除)void QString::truncate(int position);// 将对象中的数据清空, 使其为nullvoid QString::clear();// 字符串替换// 将字节数组中的 子字符串 before 替换为 after// 参数 cs 为是否区分大小写, 默认区分大小写QString &QString::replace(const QString &before, const QString &after, Qt::CaseSensitivity cs = Qt::CaseSensitive);
// 参数 cs 为是否区分大小写, 默认区分大小写// 判断字符串中是否包含子字符串 str, 包含返回true, 否则返回falsebool QString::contains(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const;// 判断字符串是否以字符串 ba 开始, 是返回true, 不是返回falsebool QString::startsWith(const QString &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const;// 判断字符串是否以字符串 ba 结尾, 是返回true, 不是返回falsebool QString::endsWith(const QString &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const;
// 迭代器遍历iterator QString::begin();iterator QString::end();// 使用数组的方式进行遍历// i的取值范围 0 <= position < size()const QChar QString::at(int position) constconst QChar QString::operator[](int position) const;
// 返回字节数组对象中字符的个数 (字符个数和字节个数是不同的概念)int QString::length() const;int QString::size() const;int QString::count() const;// 返回字节串对象中 子字符串 str 出现的次数// 参数 cs 为是否区分大小写, 默认区分大小写int QString::count(const QStringRef &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const;
// 将int, short, long, float, double 转换为 QString 类型QString &QString::setNum(int n, int base = 10);QString &QString::setNum(short n, int base = 10);QString &QString::setNum(long n, int base = 10);QString &QString::setNum(float n, char format = 'g', int precision = 6);QString &QString::setNum(double n, char format = 'g', int precision = 6);[static] QString QString::number(long n, int base = 10);[static] QString QString::number(int n, int base = 10);[static] QString QString::number(double n, char format = 'g', int precision = 6);// 将 QString 转换为 int, short, long, float, double 类型int QString::toInt(bool *ok = Q_NULLPTR, int base = 10) const;short QString::toShort(bool *ok = Q_NULLPTR, int base = 10) const;long QString::toLong(bool *ok = Q_NULLPTR, int base = 10) constfloat QString::toFloat(bool *ok = Q_NULLPTR) const;double QString::toDouble(bool *ok = Q_NULLPTR) const;// 将标准C++中的 std::string 类型 转换为 QString 类型[static] QString QString::fromStdString(const std::string &str);// 将 QString 转换为 标准C++中的 std::string 类型std::string QString::toStdString() const;// QString -> QByteArray// 转换为本地编码, 跟随操作系统QByteArray QString::toLocal8Bit() const;// 转换为 Latin-1 编码的字符串 不支持中文QByteArray QString::toLatin1() const;// 转换为 utf8 编码格式的字符串 (常用)QByteArray QString::toUtf8() const;// 所有字符转换为大写QString QString::toUpper() const;// 所有字符转换为小写QString QString::toLower() const;
