QStringRef 类

QStringRef 类提供对 QString 子字符串的薄包装。 更多信息...

头文件 #include <QStringRef>
CMakefind_package(Qt6 REQUIRED COMPONENTS Core5Compat)
target_link_libraries(mytarget PRIVATE Qt6::Core5Compat)
qmakeQT += core5compat

注意: 此类中的所有函数都是 可重入的

公共类型

公共功能

QStringRef()
QStringRef(const QString *string, int position, int length)
QStringRef(const QString *string)
QStringRef(const QStringRef &other)
~QStringRef()
QStringRefappendTo(QString *string) const
const QCharat(int position) const
QCharback() const
QStringRef::const_iteratorbegin() const
QStringRef::const_iteratorcbegin() const
QStringRef::const_iteratorcend() const
voidchop(int n)
QStringRefchopped(int len) const
voidclear()
intcompare(const QString &other, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
intcompare(const QStringRef &other, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
intcompare(QChar ch, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
intcompare(QLatin1String other, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
intcompare(const QByteArray &other, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
QStringRef::const_iteratorconstBegin() const
const QChar *constData() const
QStringRef::const_iteratorconstEnd() const
boolcontains(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
boolcontains(const QStringRef &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
boolcontains(QChar ch, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
boolcontains(QLatin1String str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
boolcontains(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
intcount() const
intcount(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
intcount(QChar ch, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
intcount(const QStringRef &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
QStringRef::const_reverse_iteratorcrbegin() const
QStringRef::const_reverse_iteratorcrend() const
const QChar *data() const
QStringRef::const_iteratorend() const
boolendsWith(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
boolendsWith(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
boolendsWith(QLatin1String str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
boolendsWith(QChar ch, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
boolendsWith(const QStringRef &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
QCharfront() const
intindexOf(const QString &str, int from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
intindexOf(const QStringRef &str, int from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
intindexOf(QStringView str, int from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
intindexOf(QChar ch, int from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
intindexOf(QLatin1String str, int from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
boolisEmpty() const
boolisNull() const
boolisRightToLeft() const
intlastIndexOf(const QString &str, int from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
intlastIndexOf(const QStringRef &str, int from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
intlastIndexOf(QChar ch, int from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
intlastIndexOf(QLatin1String str, int from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
intlastIndexOf(QStringView str, int from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
QStringRefleft(int n) const
intlength() const
intlocaleAwareCompare(const QString &other) const
intlocaleAwareCompare(const QStringRef &other) const
QStringRefmid(int position, int n = -1) const
intposition() const
QStringRef::const_reverse_iteratorrbegin() const
QStringRef::const_reverse_iteratorrend() const
QStringRefright(int n) const
intsize() const
QList<QStringRef>split(const QString &sep, Qt::SplitBehavior behavior = Qt::KeepEmptyParts, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
QList<QStringRef>split(QChar sep, Qt::SplitBehavior behavior = Qt::KeepEmptyParts, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
boolstartsWith(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
boolstartsWith(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
boolstartsWith(QLatin1String str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
boolstartsWith(QChar ch, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
boolstartsWith(const QStringRef &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
const QString *string() const
doubletoDouble(bool *ok = nullptr) const
floattoFloat(bool *ok = nullptr) const
inttoInt(bool *ok = nullptr, int base = 10) const
QByteArraytoLatin1() const
QByteArraytoLocal8Bit() const
longtoLong(bool *ok = nullptr, int base = 10) const
qlonglongtoLongLong(bool *ok = nullptr, int base = 10) const
shorttoShort(bool *ok = nullptr, int base = 10) const
QStringtoString() const
uinttoUInt(bool *ok = nullptr, int base = 10) const
ulongtoULong(bool *ok = nullptr, int base = 10) const
qulonglongtoULongLong(bool *ok = nullptr, int base = 10) const
ushorttoUShort(bool *ok = nullptr, int base = 10) const
QList<uint>toUcs4() const
QByteArraytoUtf8() const
QStringReftrimmed() const
voidtruncate(int position)
const QChar *unicode() const
booloperator!=(const char *s) const
booloperator<(const char *s) const
booloperator<=(const char *s) const
QStringRef &operator=(const QString *string)
QStringRef &operator=(const QStringRef &other)
booloperator==(const char *s) const
booloperator>(const char *s) const
booloperator>=(const char *s) const
QCharoperator[](int position) const

静态公共成员

intcompare(const QStringRef &s1, const QString &s2, Qt::CaseSensitivity cs = Qt::CaseSensitive)
intcompare(const QStringRef &s1, const QStringRef &s2, Qt::CaseSensitivity cs = Qt::CaseSensitive)
intcompare(const QStringRef &s1, QLatin1String s2, Qt::CaseSensitivity cs = Qt::CaseSensitive)
intlocaleAwareCompare(const QStringRef &s1, const QString &s2)
intlocaleAwareCompare(const QStringRef &s1, const QStringRef &s2)
booloperator<(const QStringRef &s1, const QStringRef &s2)
booloperator<=(const QStringRef &s1, const QStringRef &s2)
booloperator==(const QStringRef &s1, const QStringRef &s2)
booloperator==(const QString &s1, const QStringRef &s2)
booloperator==(QLatin1String s1, const QStringRef &s2)
booloperator>(const QStringRef &s1, const QStringRef &s2)
booloperator>=(const QStringRef &s1, const QStringRef &s2)

详细描述

QStringRef 提供了 QString API 的只读子集。

字符串引用明确引用了一个给定 大小字符串() 的部分,从特定的 位置 开始。调用 toString() 返回一个数据副本,作为真正的 QString 实例。

该类旨在提高处理从现有 QString 实例获取的子字符串时的性能。QStringRef 通过仅引用原始字符串的一部分来避免标准 QString 的内存分配和引用计数的开销。这在低级代码中可能具有优势,例如用于解析器中的代码,这可能以更复杂的代码为代价。

对于大多数用户来说,使用 QStringRef 而不是 QString 没有什么语义上的好处,因为 QStringRef 需要注意内存管理问题,这可能使编写和维护代码更复杂。

警告: QStringRef 仅在引用的字符串存在时有效。如果原始字符串被删除,字符串引用则指向无效的内存位置。

我们建议您仅在稳定代码中使用此类,其中性能分析已经明确确定可以通过用此类提供的优化子串处理来替换标准字符串操作来提高性能。

另请参阅隐式共享类

成员类型文档

QStringRef::const_iterator

另请参阅QStringRef::const_reverse_iterator

QStringRef::const_reverse_iterator

另请参阅QStringRef::const_iterator

成员函数文档

[constexpr noexcept] QStringRef::QStringRef()

构造一个空的字符串引用。

QStringRef::QStringRef(const QString *string, int position, int length)

构造一个指定字符串中从开始位置和指定长度的字符范围的字符串引用。

警告: 本函数旨在尽可能提高性能,不执行边界检查。为了保证程序的正确性,positionlength 必须描述 string 的有效子字符串。

这意味着起始的 position 必须是正数或0,并且小于 string 的长度,并且 length 必须是正数或0,但小于字符串长度减去起始 position;即,0 <= position < string->length() 和 0 <= length <= string->length() - position 都必须满足。

QStringRef::QStringRef(const QString *string)

构建针对给定 string 的字符串引用。

[noexcept default] QStringRef::QStringRef(const QStringRef &other)

构建 other 字符串引用的副本。

[noexcept default] QStringRef::~QStringRef()

销毁字符串引用。

由于此类仅用于引用字符串数据,并不拥有它,因此在实例销毁时不会释放内存。

QStringRef QStringRef::appendTo(QString *string) const

将字符串引用追加到 string,并返回一个新的对合并字符串数据的引用。

const QChar QStringRef::at(int position) const

返回字符串引用中给定索引 position 处的字符。

position 必须是字符串中的有效索引位置(即,0 <= position < size()).

QChar QStringRef::back() const

返回字符串中的最后一个字符。等同于 at(size() - 1).

此函数提供以实现STL兼容。

警告: 在空字符串上调用此函数是未定义的行为。

另请参阅 front(),at(),以及 operator[]().

QStringRef::const_iterator QStringRef::begin() const

返回一个指向字符串中第一个字符的 const STL-style iterator

另请参阅 cbegin(),constBegin(),end(),constEnd(),rbegin(),以及 rend().

QStringRef::const_iterator QStringRef::cbegin() const

begin() 相同。

另请参阅 begin(),constBegin(),cend(),constEnd(),rbegin(),以及 rend().

QStringRef::const_iterator QStringRef::cend() const

end 相同。

另请参阅endconstEndcbeginconstBeginrbeginrend

[noexcept] void QStringRef::chop(int n)

从字符串末尾移除 n 个字符。

如果 n 大于或等于 size(),结果为空字符串;如果 n 是负数,则等效于传入零。

另请参阅QString::choptruncate

QStringRef QStringRef::chopped(int len) const

返回对当前字符串从 size() - len 个字符的子字符串引用。

注意:如果 len 是负数或大于 size,行为是未定义的。

另请参阅endsWithleftrightmidchoptruncate

void QStringRef::clear()

通过使其为空和空来清除字符串引用的内容。

另请参阅isEmptyisNull

[static noexcept] int QStringRef::compare(const QStringRef &s1, const QString &s2, Qt::CaseSensitivity cs = Qt::CaseSensitive)

比较 s1s2,如果 s1 小于 s2,返回负整数;如果大于 s2,返回正整数;如果相等,返回零。

如果 csQt::CaseSensitive,比较区分大小写;否则比较不区分大小写。

[noexcept] int QStringRef::compare(const QString &other, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

这是一个重载函数。

比较 *thisother,如果 *this 小于 other,返回负整数;如果大于 other,返回正整数;如果相等,返回零。

如果 csQt::CaseSensitive,比较区分大小写;否则比较不区分大小写。

等于 compare(*this, other, cs)

[noexcept] int QStringRef::compare(const QStringRef &other, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

这是一个重载函数。

比较 *thisother,如果 *this 小于 other,返回负整数;如果大于 other,返回正整数;如果相等,返回零。

如果 csQt::CaseSensitive,比较区分大小写;否则比较不区分大小写。

等于 compare(*this, other, cs)

[noexcept] int QStringRef::compare(QChar ch, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

这是一个重载函数。

ch比较此字符串引用并返回负整数,如果此字符串引用小于ch,则返回正整数,如果大于则返回,它们相等时返回零。在这里,ch表示长度为1的字符串。

如果 csQt::CaseSensitive,比较区分大小写;否则比较不区分大小写。

[noexcept] int QStringRef::compare(QLatin1String other, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

这是一个重载函数。

比较 *thisother,如果 *this 小于 other,返回负整数;如果大于 other,返回正整数;如果相等,返回零。

如果 csQt::CaseSensitive,比较区分大小写;否则比较不区分大小写。

等于 compare(*this, other, cs)

int QStringRef::compare(const QByteArray &other, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

这是一个重载函数。

other比较此字符串引用并返回负整数,如果此字符串引用小于other,则返回正整数,如果大于则返回,它们相等时返回零。在这里,other的内容被视为UTF-8。

如果 csQt::CaseSensitive,比较区分大小写;否则比较不区分大小写。

等于 compare(*this, other, cs)

[static noexcept] int QStringRef::compare(const QStringRef &s1, const QStringRef &s2, Qt::CaseSensitivity cs = Qt::CaseSensitive)

这是一个重载函数。

比较 s1s2,如果 s1 小于 s2,返回负整数;如果大于 s2,返回正整数;如果相等,返回零。

如果 csQt::CaseSensitive,比较区分大小写;否则比较不区分大小写。

[static noexcept] int QStringRef::compare(const QStringRef &s1, QLatin1String s2, Qt::CaseSensitivity cs = Qt::CaseSensitive)

这是一个重载函数。

比较 s1s2,如果 s1 小于 s2,返回负整数;如果大于 s2,返回正整数;如果相等,返回零。

如果 csQt::CaseSensitive,比较区分大小写;否则比较不区分大小写。

QStringRef::const_iterator QStringRef::constBegin() const

begin() 相同。

另请参阅begin(),cend(),constEnd(),rbegin() 和 rend()。

const QChar *QStringRef::constData() const

unicode() 相同。

QStringRef::const_iterator QStringRef::constEnd() const

end 相同。

另请参阅end(),cend(),cbegin(),constBegin(),rbegin() 和 rend()。

bool QStringRef::contains(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

如果此字符串引用包含字符串str的任何出现,则返回true;否则返回false

如果csQt::CaseSensitive(默认),则搜索区分大小写;否则搜索不区分大小写。

另请参阅indexOf() 和 count

bool QStringRef::contains(const QStringRef &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

此函数是contains()的重载。

如果当前字符串引用包含字符串引用str的实例,则返回true;否则返回false

如果csQt::CaseSensitive(默认),则搜索区分大小写;否则搜索不区分大小写。

另请参阅indexOf() 和 count

bool QStringRef::contains(QChar ch, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

此函数是contains()的重载。

如果当前字符串包含字符ch的实例,则返回true;否则返回false

如果csQt::CaseSensitive(默认),则搜索区分大小写;否则搜索不区分大小写。

bool QStringRef::contains(QLatin1String str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

此函数是contains()的重载。

如果此字符串引用包含字符串str的任何出现,则返回true;否则返回false

如果csQt::CaseSensitive(默认),则搜索区分大小写;否则搜索不区分大小写。

另请参阅indexOf() 和 count

[noexcept] bool QStringRef::contains(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

此函数是contains()的重载。

如果当前字符串引用包含字符串视图str的实例,则返回true;否则返回false

如果csQt::CaseSensitive(默认),则搜索区分大小写;否则搜索不区分大小写。

另请参阅indexOf() 和 count

int QStringRef::count() const

返回由字符串引用引用的字符数。等同于size() 和 length()。

另请参阅position() 和 string().

int QStringRef::count(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

返回字符串str在此字符串引用中的(可能重叠的)实例数。

如果csQt::CaseSensitive(默认),则搜索区分大小写;否则搜索不区分大小写。

另请参阅QString::count(),contains() 和 indexOf().

int QStringRef::count(QChar ch, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

此函数是count()的重载。

返回字符串引用中字符ch的实例数。

如果csQt::CaseSensitive(默认),则搜索区分大小写;否则搜索不区分大小写。

另请参阅QString::count(),contains() 和 indexOf().

int QStringRef::count(const QStringRef &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

此函数是count()的重载。

返回字符串引用str在此字符串引用中的(可能重叠的)实例数。

如果csQt::CaseSensitive(默认),则搜索区分大小写;否则搜索不区分大小写。

另请参阅QString::count(),contains() 和 indexOf().

QStringRef::const_reverse_iterator QStringRef::crbegin() const

等同于rbegin().

另请参阅begin(),rbegin() 和 rend().

QStringRef::const_reverse_iterator QStringRef::crend() const

等同于rend().

另请参阅 end(),rend() 和 rbegin()。

const QChar *QStringRef::data() const

unicode() 相同。

QStringRef::const_iterator QStringRef::end() const

返回一个指向列表中最后一个字符之后的虚拟字符的const STL样式的迭代器。

另请参阅 cbegin(),constBegin(),end(),constEnd(),rbegin() 和 rend()。

bool QStringRef::endsWith(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

如果字符串引用以 str 结尾,则返回 true;否则返回 false

如果csQt::CaseSensitive(默认),则搜索区分大小写;否则搜索不区分大小写。

另请参阅 QString::endsWith() 和 startsWith()。

[noexcept] bool QStringRef::endsWith(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

此函数重载了endsWith()。

另请参阅 QString::endsWith() 和 startsWith()。

bool QStringRef::endsWith(QLatin1String str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

此函数重载了endsWith()。

另请参阅 QString::endsWith() 和 endsWith()。

bool QStringRef::endsWith(QChar ch, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

此函数重载了endsWith()。

如果字符串引用以 ch 结尾,则返回 true;否则返回 false

如果csQt::CaseSensitive(默认),则搜索区分大小写;否则搜索不区分大小写。

另请参阅 QString::endsWith() 和 endsWith()。

bool QStringRef::endsWith(const QStringRef &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

此函数重载了endsWith()。

另请参阅 QString::endsWith() 和 endsWith()。

QChar QStringRef::front() const

返回字符串中的第一个字符。等同于 at(0)

此函数提供以实现STL兼容。

警告: 在空字符串上调用此函数是未定义的行为。

另请参阅 back(),at() 和 operator[]()。

int QStringRef::indexOf(const QString &str, int from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

返回在此字符串引用中寻找字符串 str 的第一次出现的索引位置,从索引位置 from 向前搜索。如果 str 未找到,则返回 -1。

如果csQt::CaseSensitive(默认),则搜索区分大小写;否则搜索不区分大小写。

如果 from 为 -1,则从最后一个字符开始搜索;如果为 -2,则从倒数第二个字符开始,依此类推。

另请参阅 QString::indexOf(),lastIndexOf(),contains() 和 count()。

int JapaneseStringRef::indexOf(const QStringRef &str, int from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

此函数覆盖了 indexOf()。

返回在字符串引用中找到的字符串引用 str 的索引位置,从索引位置 from 开始向前搜索。如果没有找到 str,则返回 -1。

如果csQt::CaseSensitive(默认),则搜索区分大小写;否则搜索不区分大小写。

另请参阅 QString::indexOf(),lastIndexOf(),contains() 和 count()。

[noexcept] int QStringRef::indexOf(QStringView str, int from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

此函数覆盖了 indexOf()。

返回在字符串引用中找到的字符串视图 str 的索引位置,从索引位置 from 开始向前搜索。如果没有找到 str,则返回 -1。

如果csQt::CaseSensitive(默认),则搜索区分大小写;否则搜索不区分大小写。

如果 from 为 -1,则从最后一个字符开始搜索;如果为 -2,则从倒数第二个字符开始,依此类推。

另请参阅QString::indexOfQStringView::indexOflastIndexOfcontains,以及 count

int JapaneseStringRef::indexOf(QChar ch, int from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

此函数覆盖了 indexOf()。

返回从索引位置 from 开始向下搜索字符 ch 在字符串引用中的首次出现的索引位置。如果没有找到 ch,则返回 -1。

另请参阅 QString::indexOf(),lastIndexOf(),contains() 和 count()。

int QStringRef::indexOf(QLatin1String str, int from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

返回在此字符串引用中寻找字符串 str 的第一次出现的索引位置,从索引位置 from 向前搜索。如果 str 未找到,则返回 -1。

如果csQt::CaseSensitive(默认),则搜索区分大小写;否则搜索不区分大小写。

如果 from 为 -1,则从最后一个字符开始搜索;如果为 -2,则从倒数第二个字符开始,依此类推。

另请参阅 QString::indexOf(),lastIndexOf(),contains() 和 count()。

bool JapaneseStringRef::isEmpty() const

如果没有字符,则返回 true;否则返回 false

如果字符串引用的大小为零,则字符串引用为空。

另请参阅size

bool JapaneseStringRef::isNull() const

如果此字符串引用未引用字符串或引用的字符串为空(即 QString::isNull() 为真),则返回 true

另请参阅size

bool JapaneseStringRef::isRightToLeft() const

如果字符串是从右到左读取的,则返回 true

另请参阅QString::isRightToLeft

int JapaneseStringRef::lastIndexOf(const QString &str, int from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

从字符串引用的指定索引位置开始,逆向查找字符串 str 的最后出现位置的索引。如果 from 为 -1(默认值),则从最后一个字符开始搜索;如果 from 为 -2,则从倒数第二个字符开始搜索,以此类推。如果未找到 str,则返回 -1。

如果csQt::CaseSensitive(默认),则搜索区分大小写;否则搜索不区分大小写。

另请参阅 QString::lastIndexOf()、indexOf()、contains() 和 count()。

int QStringRef::lastIndexOf(const QStringRef &str, int from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

此函数重载了 lastIndexOf()。

从字符串引用的指定索引位置开始,逆向查找字符串引用 str 的最后出现位置的索引。如果 from 为 -1(默认值),则从最后一个字符开始搜索;如果 from 为 -2,则从倒数第二个字符开始搜索,以此类推。如果未找到 str,则返回 -1。

如果csQt::CaseSensitive(默认),则搜索区分大小写;否则搜索不区分大小写。

另请参阅 QString::lastIndexOf()、indexOf()、contains() 和 count()。

int QStringRef::lastIndexOf(QChar ch, int from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

此函数重载了 lastIndexOf()。

返回从指定的位置开始查找字符 ch 的最后出现位置的索引。

另请参阅 QString::lastIndexOf()、indexOf()、contains() 和 count()。

int QStringRef::lastIndexOf(QLatin1String str, int from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

此函数重载了 lastIndexOf()。

从字符串引用的指定索引位置开始,逆向查找字符串 str 的最后出现位置的索引。如果 from 为 -1(默认值),则从最后一个字符开始搜索;如果 from 为 -2,则从倒数第二个字符开始搜索,以此类推。如果未找到 str,则返回 -1。

如果csQt::CaseSensitive(默认),则搜索区分大小写;否则搜索不区分大小写。

另请参阅 QString::lastIndexOf()、indexOf()、contains() 和 count()。

[noexcept] int QStringRef::lastIndexOf(QStringView str, int from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

此函数重载了 lastIndexOf()。

从字符串引用的指定索引位置开始,逆向查找字符串字符串视图 str 的最后出现位置的索引。如果 from 为 -1(默认值),则从最后一个字符开始搜索;如果 from 为 -2,则从倒数第二个字符开始搜索,以此类推。如果未找到 str,则返回 -1。

如果csQt::CaseSensitive(默认),则搜索区分大小写;否则搜索不区分大小写。

另请参阅 indexOf()、contains() 和 count()。

QStringRef QStringRef::left(int n) const

返回字符串最左侧 n 个字符的子字符串引用。

如果 n 大于或等于 size() 或者小于零,则返回整个字符串的引用。

另请参阅 right()、mid()、startsWith()、chopped() 和 chop()。

int QStringRef::length() const

返回字符串引用所指字符的数量。相当于 size() 和 count()。

另请参阅position() 和 string().

[静态] int QStringRef::localeAwareCompare( const QStringRef &s1, const QString &s2 )

比较 s1s2,如果 s1 小于 s2,返回负整数;如果大于 s2,返回正整数;如果相等,返回零。

比较是以地区和平台依赖方式进行执行的。请使用此函数向用户展示排序后的字符串列表。

另请参阅 compare(),QLocale比较字符串

int QStringRef::localeAwareCompare( const QString &other ) const

这是一个重载函数。

比较 *thisother,如果 *this 小于 other,返回负整数;如果大于 other,返回正整数;如果相等,返回零。

比较是以地区和平台依赖方式进行执行的。请使用此函数向用户展示排序后的字符串列表。

另请参阅 比较字符串

int QStringRef::localeAwareCompare( const QStringRef &other ) const

这是一个重载函数。

比较 *thisother,如果 *this 小于 other,返回负整数;如果大于 other,返回正整数;如果相等,返回零。

比较是以地区和平台依赖方式进行执行的。请使用此函数向用户展示排序后的字符串列表。

另请参阅 比较字符串

[静态] int QStringRef::localeAwareCompare( const QStringRef &s1, const QStringRef &s2 )

这是一个重载函数。

比较 s1s2,如果 s1 小于 s2,返回负整数;如果大于 s2,返回正整数;如果相等,返回零。

比较是以地区和平台依赖方式进行执行的。请使用此函数向用户展示排序后的字符串列表。

另请参阅 比较字符串

QStringRef QStringRef::mid( int position, int n = -1 ) const

返回对从指定 position 开始的 n 个字符的此字符串的子字符串引用。

如果 position 超过字符串的长度,将返回一个空引用。

如果从给定 position 开始的字符串中可用的字符数小于 n,或如果 n 为 -1(默认),则该函数将从指定的 position 开始返回所有字符。

另请参阅 left(),right(),chopped(),chop() 和 truncate()。

int QStringRef::position() const

返回字符串引用 Starter 中引用的字符串的起始位置。

另请参阅 size() 和 string()。

QStringRef::const_reverse_iterator QStringRef::rbegin() const

返回一个指向字符串中第一个字符(逆序)的常量 STL-style 逆序迭代器。

另请参阅 begin(),crbegin() 和 rend()。

QStringRef::const_reverse_iterator QStringRef::rend() const

返回一个指向字符串中最后一个字符之后(逆序)的 STL-style 逆序迭代器。

另请参阅 end(),crend() 和 rbegin()。

返回对字符串最右端 n 个字符的子字符串引用。

如果 n 大于或等于 size() 或者小于零,则返回整个字符串的引用。

另请参阅 left(),mid(),endsWith(),chopped(),chop() 和 truncate()。

int QStringRef::size() const

返回字符串引用指向的字符数量。等同于 length() 和 count()。

另请参阅position() 和 string().

QList<QStringRef> QStringRef::split(const QString &sep, Qt::SplitBehavior behavior = Qt::KeepEmptyParts, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

将字符串分割为 sep 出现的子字符串引用,并返回包含这些子字符串的列表。

有关 sepbehaviorcs 如何交互以生成结果的信息,请参阅 QString::split

注意: 只要这条字符串存在,所有引用都有效。销毁这条字符串将导致所有引用成为悬垂指针。

QList<QStringRef> QStringRef::split(QChar sep, Qt::SplitBehavior behavior = Qt::KeepEmptyParts, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

这是一个重载函数。

bool QStringRef::startsWith(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

如果字符串引用从 str 开始,则返回 true;否则返回 false

如果csQt::CaseSensitive(默认),则搜索区分大小写;否则搜索不区分大小写。

另请参阅 QString::startsWith() 和 endsWith

[noexcept] bool QStringRef::startsWith(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

此函数重载 startsWith()。

另请参阅 QString::startsWith() 和 endsWith

bool QStringRef::startsWith(QLatin1String str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

此函数重载 startsWith()。

另请参阅 QString::startsWith() 和 endsWith

bool QStringRef::startsWith(QChar ch, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

此函数重载 startsWith()。

如果字符串引用从 ch 开始,则返回 true;否则返回 false

如果csQt::CaseSensitive(默认),则搜索区分大小写;否则搜索不区分大小写。

另请参阅 QString::startsWith() 和 endsWith

bool QStringRef::startsWith(const QStringRef &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

此函数重载 startsWith()。

另请参阅 QString::startsWith() 和 endsWith

const QString *QStringRef::string() const

返回指向字符串引用指向的字符串的指针,如果不引用字符串,则返回 0。

另请参阅 unicode

double QStringRef::toDouble(bool *ok = nullptr) const

将字符串转换为 double 值。

如果转换溢出,则返回无穷大;如果转换因其他原因失败(例如下溢),则返回 0.0。

如果 ok 不是 nullptr,则通过将 ok 设置为 false 来报告失败;通过将 ok 设置为 true 来表示成功。

字符串转换将始终在 'C' 区域设置中进行。对于依赖于区域设置的转换,请使用 QLocale::toDouble()

出于历史原因,该函数不处理千位分隔符。如果您需要转换此类数字,请使用 QLocale::toDouble()。

另请参阅 QString::toDouble().

float QStringRef::toFloat(bool *ok = nullptr) const

将字符串转换为 float 值。

如果转换溢出,则返回无穷大;如果转换因其他原因失败(例如下溢),则返回 0.0。

如果 ok 不是 nullptr,则通过将 ok 设置为 false 来报告失败;通过将 ok 设置为 true 来表示成功。

字符串转换将始终在 'C' 区域设置中进行。对于依赖于区域设置的转换,请使用 QLocale::toFloat()

另请参阅 QString::toFloat().

int QStringRef::toInt(bool *ok = nullptr, int base = 10) const

使用基数 base 将字符串转换为 int 值,默认为 10 且范围在 2 和 36 之间,或为 0。如果转换失败,则返回 0。

如果 ok 不是 nullptr,则通过将 ok 设置为 false 来报告失败;通过将 ok 设置为 true 来表示成功。

如果 base 为 0,则使用 C 语言约定:如果字符串以 "0x" 开头,则使用 16 进制基数;如果以 "0" 开头,则使用 8 进制基数;否则,使用 10 进制基数。

字符串转换将始终在 'C' 区域设置中进行。对于依赖于区域设置的转换,请使用 QLocale::toInt()

另请参阅 QString::toInt().

QByteArray QStringRef::toLatin1() const

返回字符串的 Latin-1 表示作为 QByteArray

如果字符串包含非 Latin-1 字符,则返回的字节数组未定义。这些字符可能被抑制或替换为问号。

另请参阅 toUtf8()、toLocal8Bit() 和 QStringEncoder.

QByteArray QStringRef::toLocal8Bit() const

返回字符串的本地 8 位表示作为 QByteArray。如果字符串包含不被本地 8 位编码支持的字符,则返回的字节数组未定义。

在 Unix 系统中,这相当于 toUtf8(),在 Windows 中使用系统当前的代码页。

如果该字符串包含无法在该区域编码的任何字符,则返回的字节数组未定义。这些字符可能被抑制或替换为另一个字符。

另请参阅 toLatin1()、toUtf8() 和 QStringEncoder.

long QStringRef::toLong(bool *ok = nullptr, int base = 10) const

使用基数 base 将字符串转换为 long 值,默认为 10 且范围在 2 和 36 之间,或为 0。如果转换失败,则返回 0。

如果 ok 不是 nullptr,则通过将 ok 设置为 false 来报告失败;通过将 ok 设置为 true 来表示成功。

如果 base 为 0,则使用 C 语言约定:如果字符串以 "0x" 开头,则使用 16 进制基数;如果以 "0" 开头,则使用 8 进制基数;否则,使用 10 进制基数。

字符串转换将始终在 'C' 区域设置中进行。对于依赖于区域设置的转换,请使用 QLocale::toLong()

另请参阅 QString::toLong().

qlonglong QStringRef::toLongLong(bool *ok = nullptr, int base = 10) const

使用基数 base 将字符串转换为 long long 类型,默认基数为 10,必须在 2 到 36 之间或为 0。如果转换失败,则返回 0。

如果 ok 不是 nullptr,则通过将 ok 设置为 false 来报告失败;通过将 ok 设置为 true 来表示成功。

如果 base 为 0,则使用 C 语言约定:如果字符串以 "0x" 开头,则使用 16 进制基数;如果以 "0" 开头,则使用 8 进制基数;否则,使用 10 进制基数。

字符串转换始终在 'C' 区域设置下发生。对于依赖于区域设置的转换,请使用 QLocale::toLongLong()

另请参阅 QString::toLongLong().

short QStringRef::toShort(bool *ok = nullptr, int base = 10) const

使用基数 base 将字符串转换为 short 类型,默认基数为 10,必须在 2 到 36 之间或为 0。如果转换失败,则返回 0。

如果 ok 不是 nullptr,则通过将 ok 设置为 false 来报告失败;通过将 ok 设置为 true 来表示成功。

如果 base 为 0,则使用 C 语言约定:如果字符串以 "0x" 开头,则使用 16 进制基数;如果以 "0" 开头,则使用 8 进制基数;否则,使用 10 进制基数。

字符串转换始终在 'C' 区域设置下发生。对于依赖于区域设置的转换,请使用 QLocale::toShort()

另请参阅 QString::toShort().

QString QStringRef::toString() const

将字符串引用作为 QString 对象的副本返回。

如果字符串引用不是字符串的完整引用(意味着 position() 为 0 且 size() 等于 string()<->size()), 此函数将分配一个新的字符串返回。

另请参阅 string().

uint QStringRef::toUInt(bool *ok = nullptr, int base = 10) const

使用基数 base 将字符串转换为 unsigned int 类型,默认基数为 10,必须在 2 到 36 之间或为 0。如果转换失败,则返回 0。

如果 ok 不是 nullptr,则通过将 ok 设置为 false 来报告失败;通过将 ok 设置为 true 来表示成功。

如果 base 为 0,则使用 C 语言约定:如果字符串以 "0x" 开头,则使用 16 进制基数;如果以 "0" 开头,则使用 8 进制基数;否则,使用 10 进制基数。

字符串转换始终在 'C' 区域设置下发生。对于依赖于区域设置的转换,请使用 QLocale::toUInt()

另请参阅 QString::toUInt().

ulong QStringRef::toULong(bool *ok = nullptr, int base = 10) const

使用基数 base 将字符串转换为 unsigned long 类型,默认基数为 10,必须在 2 到 36 之间或为 0。如果转换失败,则返回 0。

如果 ok 不是 nullptr,则通过将 ok 设置为 false 来报告失败;通过将 ok 设置为 true 来表示成功。

如果 base 为 0,则使用 C 语言约定:如果字符串以 "0x" 开头,则使用 16 进制基数;如果以 "0" 开头,则使用 8 进制基数;否则,使用 10 进制基数。

字符串转换始终在 'C' 区域设置下发生。对于依赖于区域设置的转换,请使用 QLocale::toULongLong()

另请参阅 QString::toULong().

qulonglong QStringRef::toULongLong(bool *ok = nullptr, int base = 10) const

使用基数 base 将字符串转换为 unsigned long long 类型,默认基数为 10,必须在 2 到 36 之间或为 0。如果转换失败,则返回 0。

如果 ok 不是 nullptr,则通过将 ok 设置为 false 来报告失败;通过将 ok 设置为 true 来表示成功。

如果 base 为 0,则使用 C 语言约定:如果字符串以 "0x" 开头,则使用 16 进制基数;如果以 "0" 开头,则使用 8 进制基数;否则,使用 10 进制基数。

字符串转换始终在 'C' 区域设置下发生。对于依赖于区域设置的转换,请使用 QLocale::toULongLong()

另请参阅 QString::toULongLong().

ushort QStringRef::toUShort(bool *ok = nullptr, int base = 10) const

使用基数 base 将字符串转换为 unsigned short 类型,默认基数为 10,必须在 2 到 36 之间或为 0。如果转换失败,则返回 0。

如果 ok 不是 nullptr,则通过将 ok 设置为 false 来报告失败;通过将 ok 设置为 true 来表示成功。

如果 base 为 0,则使用 C 语言约定:如果字符串以 "0x" 开头,则使用 16 进制基数;如果以 "0" 开头,则使用 8 进制基数;否则,使用 10 进制基数。

字符串转换始终在'C'区域中发生。对于依赖于区域的转换,请使用<.Span style="white-space:pre;">`QLocale::toUShort`()

另请参阅QString::toUShort()。

QList<uint> QStringRef::toUcs4() const

返回字符串的UCS-4/UTF-32表示形式,作为`QList`<uint>。

UCS-4是Unicode编码解码器,因此它是无损的。此字符串中的所有字符都将编解码为UCS-4。此字符串中的任何无效的代码单元序列将被Unicode替换字符(`QChar::ReplacementCharacter,对应于U+FFFD)所替换。

返回的列表不以null终止。

另请参阅toUtf8()、toLocal1()、toLocal8Bit()和QStringEncoder

QByteArray QStringRef::toUtf8() const

返回字符串的UTF-8表示形式,作为`QByteArray`

UTF-8是Unicode编码解码器,可以表示Unicode字符串中的所有字符,如`QString`

另请参阅toLocal1()、toLocal8Bit()和QStringEncoder

QStringRef QStringRef::trimmed() const

返回一个字符串,其中删除了起始和结束处的空白。

空白是指任何使QChar::isSpace()返回true的字符。这包括ASCII字符'\t'、'\n'、'\v'、'\f'、'\r'和' '。

QString::simplified()不同,`trimmed()`会保留内部空白。

另请参阅QString::trimmed()。

[noexcept] void QStringRef::truncate(int position)

在给定的position索引处截断字符串。

如果指定的position索引超出了字符串的结尾,不执行任何操作。

如果position是负数,则等同于传递零。

另请参阅QString::truncate()。

const QChar *QStringRef::unicode() const

返回字符串引用的Unicode表示形式。由于数据直接来自引用的字符串,因此除非字符串引用包括字符串的空终止符,否则不会以null结尾。

另请参阅 string().

bool QStringRef::operator!=(const char *s) const

此函数重载了运算符!=()。

s const char指针使用fromUtf8()函数转换为`QStringRef`

您可以通过在编译应用程序时定义QT_NO_CAST_FROM_ASCII来禁用此运算符。这可能在您想确保所有用户可见的字符串都通过QObject::tr,例如时很有用。

如果此字符串在词法上不等于参数字符串 s,则返回 true。否则返回 false

另请参阅 QT_NO_CAST_FROM_ASCII

bool QStringRef::operator<(const char *s) const

此函数重载了操作符 <。

s const char指针使用fromUtf8()函数转换为`QStringRef`

您可以通过在编译应用程序时定义QT_NO_CAST_FROM_ASCII来禁用此运算符。这可能在您想确保所有用户可见的字符串都通过QObject::tr,例如时很有用。

如果此字符串在词法上小于参数字符串 s,则返回 true。否则返回 false

另请参阅 QT_NO_CAST_FROM_ASCII

bool QStringRef::operator<=(const char *s) const

此函数重载了操作符 <=。

s const char指针使用fromUtf8()函数转换为`QStringRef`

您可以通过在编译应用程序时定义QT_NO_CAST_FROM_ASCII来禁用此运算符。这可能在您想确保所有用户可见的字符串都通过QObject::tr,例如时很有用。

如果此字符串在词法上小于或等于参数字符串 s,则返回 true。否则返回 false

另请参阅 QT_NO_CAST_FROM_ASCII

QStringRef &QStringRef::operator=(const QString *string)

构建一个指向给定 string 的字符串引用,并将其分配给此字符串引用,返回结果。

[noexcept default] QStringRef &QStringRef::operator=(const QStringRef &other)

other 字符串引用分配给此字符串引用,并返回结果。

bool QStringRef::operator==(const char *s) const

此函数重载了操作符 ==。

s 字节数组使用 fromUtf8() 函数转换为 QStringRef。此函数在遇到第一个 NUL 字符或字节数组结束时停止转换。

您可以通过在编译应用程序时定义QT_NO_CAST_FROM_ASCII来禁用此运算符。这可能在您想确保所有用户可见的字符串都通过QObject::tr,例如时很有用。

如果此字符串在词法上等于参数字符串 s,则返回 true。否则返回 false

另请参阅 QT_NO_CAST_FROM_ASCII

bool QStringRef::operator>(const char *s) const

此函数重载了操作符 >。

s const char指针使用fromUtf8()函数转换为`QStringRef`

您可以通过在编译应用程序时定义QT_NO_CAST_FROM_ASCII来禁用此运算符。这可能在您想确保所有用户可见的字符串都通过QObject::tr,例如时很有用。

如果此字符串在词法上大于参数字符串 s,则返回 true。否则返回 false

另请参阅 QT_NO_CAST_FROM_ASCII

bool QStringRef::operator>=(const char *s) const

此函数重载了操作符 >=。

s const char指针使用fromUtf8()函数转换为`QStringRef`

您可以通过在编译应用程序时定义QT_NO_CAST_FROM_ASCII来禁用此运算符。这可能在您想确保所有用户可见的字符串都通过QObject::tr,例如时很有用。

如果此字符串在词法上大于或等于参数字符串 s,则返回 true。否则返回 false

另请参阅 QT_NO_CAST_FROM_ASCII

QChar QStringRef::operator[](int position) const

返回字符串引用中给定索引 position 处的字符。

position 必须是字符串引用中的有效索引位置(即,0 <= position < size()).

另请参阅 at().

相关非成员函数

[noexcept] bool operator<(const QStringRef &s1, const QStringRef &s2)

如果字符串引用 s1 在词法上小于字符串引用 s2,则返回 true;否则返回 false

另请参阅 比较字符串

[noexcept] bool operator<=(const QStringRef &s1, const QStringRef &s2)

如果字符串引用 s1 词典小于或等于字符串引用 s2,则返回 true;否则返回 false

另请参阅 比较字符串

[noexcept] bool operator==(const QStringRef &s1, const QStringRef &s2)

如果字符串引用 s1 词典等于字符串引用 s2,则返回 true;否则返回 false

[noexcept] bool operator==(const QString &s1, const QStringRef &)

如果字符串 s1 词典等于字符串引用 s2,则返回 true;否则返回 false

[noexcept] bool operator==(QLatin1String s1, const QStringRef &s2)

如果字符串 s1 词典等于字符串引用 s2,则返回 true;否则返回 false

[noexcept] bool operator>(const QStringRef &s1, const QStringRef &s2)

如果字符串引用 s1 词典大于字符串引用 s2,则返回 true;否则返回 false

另请参阅 比较字符串

[noexcept] bool operator>=(const QStringRef &s1, const QStringRef &s2)

如果字符串引用 s1 词典大于或等于字符串引用 s2,则返回 true;否则返回 false

另请参阅 比较字符串

© 2024 Qt公司版权有限公司。文档贡献的版权归各自的所有者所有。在此提供的文档是按照自由软件基金会发布的 GNU自由文档许可协议版本1.3 的条款进行许可。Qt及其相关标志是芬兰以及/或其他国家/地区的Qt公司商标。所有其他商标均为其各自所有者的财产。