QStringView 类
QStringView 类提供对 UTF-16 字符串的统一视图,包含可读的 QString API 子集。更多...
头文件 | #include <QStringView> |
CMake | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
qmake | QT += core |
- 成员列表,包括继承自父类的成员
- 已弃用成员
- QStringView 是 字符串数据处理类 的一部分。
注意: 这个类中的所有函数都是 可重入的。
公共类型
const_iterator | |
const_pointer | |
const_reference | |
const_reverse_iterator | |
difference_type | |
iterator | |
pointer | |
reference | |
reverse_iterator | |
size_type | |
storage_type | |
value_type |
公共函数
QStringView() | |
QStringView(std::nullptr_t) | |
QStringView(const Char *str, qsizetype len) | |
QStringView(const Char *first, const Char *last) | |
QStringView(const Char (&)[N] string) | |
QStringView(const Char *str) | |
QStringView(const QString &str) | |
QStringView(const Container &str) | |
QString | arg(Args &&... args) const |
QChar | at(qsizetype n) const |
QChar | back() const |
QStringView::const_iterator | begin() const |
QStringView::const_iterator | cbegin() const |
QStringView::const_iterator | cend() const |
void | chop(qsizetype length) |
QStringView | chopped(qsizetype length) const |
int | compare(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
int | compare(QLatin1StringView l1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
(自 6.5) int | compare(QUtf8StringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
int | compare(QChar ch) const |
int | compare(QChar ch, Qt::CaseSensitivity cs) const |
(自 6.1) QStringView::const_iterator | constBegin() const |
(自 6.0) QStringView::const_pointer | constData() const |
(自 6.1) QStringView::const_iterator | constEnd() const |
bool | contains(QChar c, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
bool | contains(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
bool | contains(QLatin1StringView l1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
(since 6.1) bool | contains(const QRegularExpression &re, QRegularExpressionMatch *rmatch = nullptr) const |
(since 6.1) qsizetype | count(const QRegularExpression &re) const |
(since 6.0) qsizetype | count(QChar ch, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
(since 6.0) qsizetype | count(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
(since 6.4) qsizetype | count(QLatin1StringView l1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
QStringView::const_reverse_iterator | crbegin() const |
QStringView::const_reverse_iterator | crend() const |
QStringView::const_pointer | data() const |
bool | empty() const |
QStringView::const_iterator | end() const |
bool | endsWith(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
bool | endsWith(QLatin1StringView l1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
bool | endsWith(QChar ch) const |
bool | endsWith(QChar ch, Qt::CaseSensitivity cs) const |
(since 6.0) QStringView | first(qsizetype n) const |
QChar | first() const |
QChar | front() const |
qsizetype | indexOf(QChar c, qsizetype from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
qsizetype | indexOf(QStringView str, qsizetype from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
qsizetype | indexOf(QLatin1StringView l1, qsizetype from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
(since 6.1) qsizetype | indexOf(const QRegularExpression &re, qsizetype from = 0, QRegularExpressionMatch *rmatch = nullptr) const |
bool | isEmpty() const |
(since 6.7) bool | isLower() const |
bool | isNull() const |
bool | isRightToLeft() const |
(since 6.7) bool | isUpper() const |
bool | isValidUtf16() const |
(since 6.0) QStringView | last(qsizetype n) const |
QChar | last() const |
qsizetype | lastIndexOf(QChar c, qsizetype from, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
(since 6.3) qsizetype | lastIndexOf(QChar c, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
(since 6.2) qsizetype | lastIndexOf(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
qsizetype | lastIndexOf(QStringView str, qsizetype from, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
(since 6.2) qsizetype | lastIndexOf(QLatin1StringView l1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
qsizetype | lastIndexOf(QLatin1StringView l1, qsizetype from, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
(since 6.2) qsizetype | lastIndexOf(const QRegularExpression &re, QRegularExpressionMatch *rmatch = nullptr) const |
(since 6.1) qsizetype | lastIndexOf(const QRegularExpression &re, qsizetype from, QRegularExpressionMatch *rmatch = nullptr) const |
qsizetype | length() const |
(since 6.4) int | localeAwareCompare(QStringView other) const |
QStringView::const_reverse_iterator | rbegin() const |
QStringView::const_reverse_iterator | rend() const |
qsizetype | size() const |
(since 6.0) QStringView | sliced(qsizetype pos, qsizetype n) const |
(since 6.0) QStringView | sliced(qsizetype pos) const |
(since 6.0) QList<QStringView> | split(QStringView sep, Qt::SplitBehavior behavior = Qt::KeepEmptyParts, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
(since 6.0) QList<QStringView> | split(QChar sep, Qt::SplitBehavior behavior = Qt::KeepEmptyParts, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
(since 6.0) QList<QStringView> | split(const QRegularExpression &re, Qt::SplitBehavior behavior = Qt::KeepEmptyParts) const |
bool | startsWith(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
bool | startsWith(QLatin1StringView l1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
bool | startsWith(QChar ch) const |
bool | startsWith(QChar ch, Qt::CaseSensitivity cs) const |
(since 6.0) CFStringRef | toCFString() const |
(since 6.0) double | toDouble(bool *ok = nullptr) const |
(since 6.0) float | toFloat(bool *ok = nullptr) const |
(since 6.0) int | toInt(bool *ok = nullptr, int base = 10) const |
QByteArray | toLatin1() const |
QByteArray | toLocal8Bit() const |
(since 6.0) long | toLong(bool *ok = nullptr, int base = 10) const |
(since 6.0) qlonglong | toLongLong(bool *ok = nullptr, int base = 10) const |
(since 6.0) NSString * | toNSString() const |
(since 6.0) short | toShort(bool *ok = nullptr, int base = 10) const |
QString | toString() const |
(since 6.0) uint | toUInteger(bool *ok = nullptr, int base = 10) const |
(since 6.0) ulong | to_ulong(bool *ok = nullptr, int base = 10) const |
(since 6.0) qulonglong | toULongLong(bool *ok = nullptr, int base = 10) const |
(since 6.0) ushort | toUShort(bool *ok = nullptr, int base = 10) const |
QList<uint> | toUcs4() const |
QByteArray | toUtf8() const |
qsizetype | toWCharArray(wchar_t *array) const |
(自6.0起) decltype(qTokenize(*this, std::forward | tokenize(Needle &&分离符, Flags... 标志) const |
QStringView | trimmed() const |
void | truncate(qsizetype 长度) |
const QStringView::storage_type * | utf16() const |
(自6.7起) std::u16string_view | operator std::u16string_view() const |
QChar | operator[](qsizetype n) const |
静态公共成员
QStringView | fromArray(const Char (&)[Size] 字符串) |
相关非成员
size_t | qHash(QStringView 键, size_t 种子 = 0) |
bool | operator!=(QStringView 左操作数, QStringView 右操作数) |
bool | operator<(QStringView 左操作数, QStringView 右操作数) |
bool | operator<=(QStringView 左操作数, QStringView 右操作数) |
bool | operator==(QStringView 左操作数, QStringView 右操作数) |
bool | operator>(QStringView 左操作数, QStringView 右操作数) |
bool | operator>=(QStringView 左操作数, QStringView 右操作数) |
详细描述
QStringView引用了UTF-16字符串的一个连续部分,但它并不拥有这部分。它作为一个接口类型,用于各种UTF-16字符串,无需首先构建QString。
UTF-16字符串可能表示为一个QChar数组(或与数组兼容的数据结构,如QString、std::basic_string等),也可能是一个ushort
、char16_t
或(在类似Windows这样的平台中,其为16位类型)wchar_t
数组。
QStringView被设计为一个接口类型;其主要用途作为函数参数类型。当将QStringViews用作自动变量或数据成员时,需要注意确保引用的字符串数据(例如,由QString拥有)在所有代码路径上都比QStringView生命周期更长,以免字符串视图最终引用已删除的数据。
当用作接口类型时,QStringView允许单个函数接受广泛的UTF-16字符串数据源。一个接受QStringView的函数因此取代了三个函数重载(接受QString和(const QChar*, qsizetype)
),同时还可以将该函数传递给更多的字符串数据源,例如u"Hello World"
,一个char16_t
字符串字面量。
QStringViews应按值传递,而不是通过const引用传递
void myfun1(QStringView sv); // preferred void myfun2(const QStringView &sv); // compiles and works, but slower
如果您想让您用户对自己可以传递给您的函数的字符串有最大程度的灵活性,请配合QStringView重载使用以下重载
- QChar:此重载可以委托给QStringView版本
void fun(QChar ch) { fun(QStringView(&ch, 1)); }
尽管由于技术原因,QStringView无法仅通过自己提供QChar构造函数。
- QString:如果您存储了一个未修改的字符串副本,并且因此想利用QString的隐式共享。
- QLatin1StringView: 如果您可以在不先将 QLatin1StringView 转换为 UTF-16 的情况下实现该函数;用户期望提供在 QLatin1StringView 上重载的函数,其内存分配比等价于 QStringView 版本的调用严格更少,涉及将从 QLatin1StringView 生成的 QString 进行构造。
QStringView 也可用作函数的返回值。如果调用返回 QStringView 的函数,请务必注意不要保留 QStringView 时间超过函数承诺保留引用的字符串数据。如有疑问,可以通过调用 toString() 将 QStringView 转换为 QString 来获取数据的强引用。
QStringView 是一种 文字类型,但由于它以 char16_t
存储数据,因此迭代不是 constexpr
(从 const char16_t*
到 const QChar*
的转换,这在 constexpr
函数中是不允许的)。您可以在 constexpr
上下文中使用索引循环和/或 utf16()。
另请参阅 QString.
成员类型文档
QStringView::const_iterator
此类型定义提供了 QStringView 的 STL 风格 const 迭代器。
另请参阅 iterator 和 const_reverse_iterator.
QStringView::const_pointer
为与 STL 兼容而提供的别名,即 value_type *
。
QStringView::const_reference
为与 STL 兼容而提供的别名,即 value_type &
。
QStringView::const_reverse_iterator
此类型定义提供了 QStringView 的 STL 风格 const 逆序迭代器。
另请参阅 reverse_iterator 和 const_iterator.
QStringView::difference_type
为与 STL 兼容而提供的别名,即 std::ptrdiff_t
。
QStringView::iterator
此类型定义提供了 QStringView 的 STL 风格 const 迭代器。
QStringView 不支持可变迭代器,因此它与 const_iterator 相同。
另请参阅 const_iterator 和 reverse_iterator.
QStringView::pointer
为与 STL 兼容而提供的别名,即 value_type *
。
QStringView 不支持可变指针,因此它与 const_pointer 相同。
QStringView::reference
为与 STL 兼容而提供的别名,即 value_type &
。
QStringView 不支持可变引用,因此它与 const_reference 相同。
QStringView::reverse_iterator
此类型定义提供了 QStringView 的 STL 风格 const 逆序迭代器。
QStringView 不支持可变逆序迭代器,因此它与 const_reverse_iterator 相同。
另请参阅 const_reverse_iterator 和 iterator.
QStringView::size_type
为与 STL 兼容而提供的别名,即 qsizetype。
QStringView::storage_type
别名,表示 char16_t
。
QStringView::value_type
别名,表示 const QChar
。为了与 STL 兼容而提供。
成员函数文档
[自 6.0 开始]
QList<QStringView> QStringView::split(QChar sep, Qt::SplitBehavior behavior = Qt::KeepEmptyParts, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
[自 6.0 开始]
QList<QStringView> QStringView::split(QStringView sep, Qt::SplitBehavior behavior = Qt::KeepEmptyParts, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
在 sep 出现的位置将视图拆分为子字符串视图,并返回这些字符串视图的列表。
有关 sep、behavior 和 cs 如何相互作用以形成结果的信息,请参阅 QString::split()。
注意:只要引用此字符串视图的数据有效,所有返回的视图都是有效的。销毁数据将导致所有视图成为悬空视图。
此函数自 Qt 6.0 介绍。
模板 <typename... Args> QString QStringView::arg(Args &&... args) const
用 args 中的相应参数替换此字符串中的 %N
出现的位置。参数不是位置固定的:第一个 args 以最低的 N
替换 %N
(所有这些都是一样的),第二个 args 以次低的 N
替换等。
可以由任何隐式转换为 QString、QStringView 或 QLatin1StringView 的东西组成 Args
。
此外,还支持以下类型: QChar、QLatin1Char。
另请参阅QString::arg。
[constexpr noexcept]
int QStringView::compare(QChar ch) const
[noexcept]
int QStringView::compare(QChar ch, Qt::CaseSensitivity cs) const
[noexcept]
int QStringView::compare(QLatin1StringView l1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
将此字符串视图与拉丁-1字符串视图 l1 或字符 ch 进行比较。如果此字符串视图小于 l1 或 ch,则返回负整数;如果大于 l1 或 ch,则返回正整数;如果它们相等,则返回零。
如果 cs 是 Qt::CaseSensitive(默认值),则比较区分大小写;否则比较不区分大小写。
另请参阅 operator==(),operator<() 和 operator>。
[noexcept]
bool QStringView::startsWith(QChar ch) const
[noexcept]
bool QStringView::startsWith(QChar ch, Qt::CaseSensitivity cs) const
[noexcept]
bool QStringView::startsWith(QLatin1StringView l1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
[noexcept]
bool QStringView::startsWith(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
如果此字符串视图分别以 str 观看的 UTF-16 字符串、l1 观看的 Latin-1 字符串或 ch 观看的字符开头,则返回 true
;否则返回 false
。
如果 cs 是 Qt::CaseSensitive(默认值),则搜索区分大小写;否则搜索不区分大小写。
另请参阅 endsWith。
[noexcept]
bool QStringView::endsWith(QChar ch) const
[noexcept]
bool QStringView::endsWith(QChar ch, Qt::CaseSensitivity cs) const
[noexcept]
bool QStringView::endsWith(QLatin1StringView l1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
[noexcept]
bool QStringView::endsWith(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
如果此字符串视图分别以 str 观看的 UTF-16 字符串、l1 观看的 Latin-1 字符串或 ch 观看的字符结尾,则返回 true
;否则返回 false
。
如果 cs 是 Qt::CaseSensitive(默认值),则搜索区分大小写;否则搜索不区分大小写。
另请参阅 startsWith。
[noexcept]
qsizetype QStringView::indexOf(QChar c, qsizetype from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
[noexcept]
qsizetype QStringView::indexOf(QLatin1StringView l1, qsizetype from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
[noexcept]
qsizetype QStringView::indexOf(QStringView str, qsizetype from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
返回在此字符串视图中从索引位置from开始,以正向方式查找按str查看的UTF-16字符串、按l1查看的Latin-1字符串或字符ch的第一个出现位置的索引。如果没有找到,分别返回-1。
如果 cs 是 Qt::CaseSensitive(默认值),则搜索区分大小写;否则搜索不区分大小写。
如果from为-1,则从最后一个字符开始搜索;如果为-2,则从倒数第二个字符开始搜索,依此类推。
另请参阅QString::indexOf。
[noexcept]
bool QStringView::contains(QChar c, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
[noexcept]
bool QuebecView::contains(QLatin1StringView l1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
[noexcept]
bool QStringView::contains(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
如果此字符串视图中包含由str查看的UTF-16字符串、由l1查看的Latin-1字符串或字符ch的任何出现,则返回true
;否则返回false
。
如果 cs 是 Qt::CaseSensitive(默认值),则搜索区分大小写;否则搜索不区分大小写。
另请参阅indexOf。
[noexcept]
qsizetype QStringView::lastIndexOf(QChar c, qsizetype from, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
[noexcept]
qsizetype QStringView::lastIndexOf(QLatin1StringView l1, qsizetype from, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
[noexcept]
qsizetype QStringView::lastIndexOf(QStringView str, qsizetype from, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
返回 UTF-16 字符串 str、Latin-1 字符串 l1 或字符 ch 在当前字符串视图中最后一次出现的位置索引,从索引位置 from 向后搜索。
如果from为-1,则从最后一个字符开始搜索;如果为-2,则从倒数第二个字符开始搜索,依此类推。
如果 str、l1 或 c 没有找到,则分别返回 -1。
如果 cs 是 Qt::CaseSensitive(默认值),则搜索区分大小写;否则搜索不区分大小写。
注意: 当搜索空长度 str 或 l1 时,如果 from 为负值,即使通常认为 -1
是从字符串视图的末尾搜索,匹配也将被排除在搜索之外:因为匹配是在最后一个字符 之后,所以会被排除。要包括这样一个最后的空匹配,可以为 from 提供正值,或者完全省略 from 参数。
另请参阅 QString::lastIndexOf。
[noexcept, since 6.2]
qsizetype QStringView::lastIndexOf(QLatin1StringView l1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
[noexcept, since 6.2]
qsizetype QStringView::lastIndexOf(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
此函数重载了 lastIndexOf。
返回 UTF-16 字符串 str 或 Latin-1 字符串 l1 在当前字符串视图中最后一次出现的位置索引,从当前字符串视图的最后一个字符开始向后搜索。如果 str 或 l1 没有找到,则分别返回 -1。
如果 cs 是 Qt::CaseSensitive(默认值),则搜索区分大小写;否则搜索不区分大小写。
此函数自 Qt 6.2 版本中引入。
另请参阅 QString::lastIndexOf。
[constexpr noexcept(...), since 6.0]
模板 <typename Needle, typename... Flags> decltype(qTokenize(*this, std::forward<Needle>(needle), flags...)) QStringView::tokenize(Needle &&sep, Flags... flags) const
将字符串根据 sep 的出现分割成字符串视图,并返回一个包含这些字符串的惰性序列。
类似于
return QStringTokenizer{std::forward<Needle>(sep), flags...};
但在未启用编译器中的 C++17 类模板参数推断 (CTAD) 时也能工作。
有关 sep 和 flags 如何交互形成结果的说明,请参阅 QStringTokenizer。
注意: 虽然此函数返回 QStringTokenizer,但你永远不应该显式命名其模板参数。如果你可以使用 C++17 类模板参数推断 (CTAD),则可以编写
QStringTokenizer result = sv.tokenize(sep);
(不需要模板参数)。如果你不能使用 C++17 CTAD,则必须仅在 auto
变量中存储返回值
auto result = sv.tokenize(sep);
这是因为QStringTokenizer的模板参数与返回的特定tokenize()重载方式之间存在非常微妙的依赖关系,并且它们通常不对应于用于分隔符的类型。
此函数自 Qt 6.0 介绍。
注意:当"noexcept(qTokenize(std::declval
另请参阅:QStringTokenizer和qTokenize。
[constexpr noexcept]
QStringView::QStringView()
构建一个空字符串视图。
另请参阅:isNull。
[constexpr noexcept]
QStringView::QStringView(std::nullptr_t)
构建一个空字符串视图。
另请参阅:isNull。
[constexpr]
模板 <typename Char, QStringView::if_compatible_charQStringView(const Char *str, qsizetype len)
在str上构建长度为len的字符串视图。
str的范围[str,len)必须在本字符串视图对象的生命周期内保持有效。
如果len为0,则将nullptr
作为str传递是安全的,并会导致空字符串视图。
如果len为负数,或者当它为正时,如果str是nullptr
,则行为未定义。
只有当Char是一个兼容字符类型时,此构造函数才参与重载解析。Char的兼容字符类型包括: QChar
、ushort
、char16_t
在平台(如Windows)上(如果它是16位类型)wchar_t
。
[constexpr]
模板 <typename Char, QStringView::if_compatible_charQStringView(const Char *first, const Char *last)
在first上构建长度为(last - first)的字符串视图。
first的范围[first,last)必须在本字符串视图对象的生命周期内保持有效。
如果last也是nullptr
,则将\nullptr
作为first传递是安全的,并会导致空字符串视图。
如果last在first之前,或者first是nullptr
而last不是,则行为未定义。
只有当Char是一个兼容字符类型时,此构造函数才参与重载解析。Char的兼容字符类型包括: QChar
、ushort
、char16_t
在平台(如Windows)上(如果它是16位类型)wchar_t
。
[constexpr noexcept]
模板 <typename Char, size_t N> QStringView::QStringView(const Char (&)[N] string)
在字符字符串字面量string上构建字符串视图。视图覆盖直到遇到第一个Char(0)
或N, whichever comes first。如果你需要整个数组,请使用fromArray()代替。
string必须在本字符串视图对象的生命周期内保持有效。
只有当string是一个实际数组且Char是一个兼容字符类型时,此构造函数才参与重载解析。Char的兼容字符类型包括: QChar
、ushort
、char16_t
在平台(如Windows)上(如果它是16位类型)wchar_t
。
另请参阅:fromArray。
[constexpr noexcept]
template <typename Char> QStringView::QStringView(const Char *str)
在 str 上构造一个字符串视图。长度通过扫描第一个 Char(0)
来确定。
str 必须在字符串视图对象的生存期内保持有效。
将 nullptr
作为 str 传递是安全的,并导致空字符串视图。
如果 str 不是一个数组且 Char
是兼容字符类型,此构造函数才参与重载解析。兼容字符类型有:QChar
、ushort
、char16_t
和(在例如 Windows 这样的平台中,如果它是一个 16 位类型)wchar_t
。
[noexcept]
QStringView::QStringView(const QString &str)
在 str 上构造一个字符串视图。
str.data()
必须在字符串视图对象的生存期内保持有效。
如果且仅当 str.isNull()
时,字符串视图将是空的。
[constexpr noexcept]
template <typename Container, QStringView::if_compatible_container<Container> = true> QStringView::QStringView(const Container &str)
在 str 上构造一个字符串视图。长度从 std::size(str)
取得。
std::data(str)
必须在字符串视图对象的生存期内保持有效。
如果 Container
是具有与 value_type
兼容字符类型的容器,此构造函数才参与重载解析。兼容字符类型有:QChar
、ushort
、char16_t
和(在例如 Windows 这样的平台中,如果它是一个 16 位类型)wchar_t
。
如果 std::size(str) == 0
,字符串视图将是空的。此构造函数是否会导致空字符串视图是不确定的(为此,std::data(str)
必须返回 nullptr
)。
[constexpr]
QChar QStringView::at(qsizetype n) const
返回字符串视图中位置 n 的字符。
如果 n 为负数或不满 size,则行为是未定义的。
另请参阅operator[]、front 和 back。
[constexpr]
QChar QStringView::back() const
返回字符串视图中的最后一个字符。等同于 last。
此函数提供以实现 STL 兼容性。
警告:在空字符串视图中调用此函数是未定义行为。
[noexcept]
QStringView::const_iterator QStringView::begin() const
返回一个指向字符串视图中第一个字符的 const STL 风格迭代器。
此函数提供以实现 STL 兼容性。
另请参阅end()、constBegin()、cbegin()、rbegin()以及data()。
[noexcept]
QStringView::const_iterator QStringView::cbegin() const
等同于begin。
此函数提供以实现 STL 兼容性。
另请参阅cend()、begin()、constBegin()、crbegin()以及data()。
[noexcept]
QStringView::const_iterator QStringView::cend() const
等同于end。
此函数提供以实现 STL 兼容性。
另请参阅cbegin()、end()、constEnd()以及crend()。
[constexpr noexcept]
void QStringView::chop(qsizetype length)
通过裁剪长度为length个字符来截断字符串视图。
等同于*this = left(size() - length)
。
注意:当length小于0或大于size时,行为未定义。
另请参阅mid()、left()、right()、chopped()以及truncate()。
[constexpr noexcept]
QStringView QStringView::chopped(qsizetype length) const
返回从对象开头开始长度为size() - length的子串。
等同于left(size() - length)
。
注意:当length小于0或大于size时,行为未定义。
另请参阅mid()、left()、right()、chop()以及truncate()。
[noexcept]
int QStringView::compare(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
将该字符串视图与字符串视图str进行比较,如果该字符串视图小于str,则返回负整数;如果大于str,则返回正整数;如果它们相等,则返回零。
如果 cs 是 Qt::CaseSensitive(默认值),则比较区分大小写;否则比较不区分大小写。
另请参阅 operator==(),operator<() 和 operator>。
[noexcept, since 6.5]
int QStringView::compare(QUtf8StringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
将该字符串视图与QUtf8StringView str进行比较,如果该字符串视图小于str,则返回负整数;如果大于str,则返回正整数;如果它们相等,则返回零。
如果 cs 是 Qt::CaseSensitive(默认值),则比较区分大小写;否则比较不区分大小写。
此函数自Qt 6.5起引入。
另请参阅 operator==(),operator<() 和 operator>。
[无异常,自6.1起]
QStringView::const_iterator QStringView::constBegin() const
等同于begin。
此函数自 Qt 6.1 开始引入。
另请参阅constEnd()、begin()、cbegin()、crbegin() 和 data()。
[无异常,自6.0起]
QStringView::const_pointer QStringView::constData() const
返回字符串视图中第一个字符的常量指针。
注意:返回值表示的字符数组不是以 null 结尾。
此函数自 Qt 6.0 介绍。
另请参阅data()、begin()、end() 和 utf16()。
[无异常,自6.1起]
QStringView::const_iterator QStringView::constEnd() const
等同于end。
此函数自 Qt 6.1 开始引入。
另请参阅constBegin()、end()、cend() 和 crend()。
[自6.1起]
bool QStringView::contains(const QRegularExpression &re, QRegularExpressionMatch *rmatch = nullptr) const
如果正则表达式re在此字符串视图中匹配,则返回 true
;否则返回 false
。
如果匹配成功且rmatch不是 nullptr
,它还将匹配结果写入由rmatch指向的QRegularExpressionMatch对象。
此函数自 Qt 6.1 开始引入。
另请参阅QRegularExpression::match()。
[自6.1起]
qsizetype QStringView::count(const QRegularExpression &re) const
返回正则表达式re在字符串视图中匹配的次数。
由于历史原因,此函数计算重叠匹配。这种行为与使用QRegularExpressionMatchIterator遍历字符串视图中的匹配简单不同。
此函数自 Qt 6.1 开始引入。
另请参阅QRegularExpression::globalMatch()。
[无异常,自6.0起]
qsizetype QStringView::count(QChar ch, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
此函数重载了 count()。
返回字符ch在字符串视图中的发生次数。
如果 cs 是 Qt::CaseSensitive(默认值),则搜索区分大小写;否则搜索不区分大小写。
此函数自 Qt 6.0 介绍。
另请参阅QString::count()、contains() 和 indexOf()。
[noexcept, since 6.0]
qsizetype QStringView::count(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
此函数重载了 count()。
返回字符串视图str在此字符串视图中的(可能重叠的)出现次数。
如果 cs 是 Qt::CaseSensitive(默认值),则搜索区分大小写;否则搜索不区分大小写。
此函数自 Qt 6.0 介绍。
另请参阅QString::count()、contains() 和 indexOf()。
[since 6.4]
qsizetype QStringView::count(QLatin1StringView l1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
此函数重载了 count()。
返回由
如果 cs 是 Qt::CaseSensitive(默认值),则搜索区分大小写;否则搜索不区分大小写。
此功能是在Qt 6.4中引入的。
另请参阅QString::count()、contains() 和 indexOf()。
[noexcept]
QStringView::const_reverse_iterator QStringView::crbegin() const
与rbegin()相同。
此函数提供以实现 STL 兼容性。
[noexcept]
QStringView::const_reverse_iterator QStringView::crend() const
与rend()相同。
此函数提供以实现 STL 兼容性。
[noexcept]
QStringView::const_pointer QStringView::data() const
返回字符串视图中第一个字符的常量指针。
注意:返回值表示的字符数组不是以 null 结尾。
[constexpr noexcept]
bool QStringView::empty() const
返回此字符串视图是否为空——也就是说,是否size() == 0
。
此函数提供以实现 STL 兼容性。
另请参阅 isEmpty(),isNull(),size()和length。
[noexcept]
QStringView::const_iterator QStringView::end() const
返回一个指向列表中最后一个字符之后虚构字符的const STL样式迭代器。
此函数提供以实现 STL 兼容性。
另请参阅 begin(),constEnd(),cend()和rend。
[constexpr noexcept, since 6.0]
QStringView QStringView::first(qsizetype n) const
返回指向此字符串视图的前 n个字符的字符串视图。
注意:当 n < 0或 n > size()时,行为是未定义的。
此函数自 Qt 6.0 介绍。
另请参阅 last(),sliced(),startsWith(),chopped(),chop()和truncate。
[constexpr]
QChar QStringView::first() const
返回字符串视图中的第一个字符。与front()相同。
此函数提供与其他Qt容器的兼容性。
警告:在空字符串视图中调用此函数是未定义行为。
[静态 constexpr noexcept]
模板 <typename Char, size_t Size, QStringView::if_compatible_char<Char> = true> QStringView QStringView::fromArray(const Char (&)[Size] string)
构造一个完整的字符字符串字面量 string 的字符串视图,包括任何尾随 Char(0)
。如果您不希望在视图中包含空终止符,则可以在确定它位于末尾时使用 chop()。或者,您可以使用接受数组字面量作为重载的构造函数,这将创建一个视图,直到但不包括数据中的第一个空终止符。
string必须在本字符串视图对象的生命周期内保持有效。
如果 Char
是兼容字符类型,则此函数将与任何数组字面量一起工作。兼容字符类型包括:QChar
,ushort
,char16_t
以及(在如Windows这样的16位类型平台上)wchar_t
。
[constexpr]
QChar QStringView::front() const
返回字符串视图中的第一个字符。与first()相同。
此函数提供以实现 STL 兼容性。
警告:在空字符串视图中调用此函数是未定义行为。
[since 6.1]
qsizetype QStringView::indexOf(const QRegularExpression &re, qsizetype from = 0, QRegularExpressionMatch *rmatch = nullptr) const
返回正则表达式 re 在字符串视图中的第一个匹配位置的索引,从索引位置 from 向前搜索。如果没有找到 re 的匹配项,则返回 -1。
如果匹配成功且rmatch不是 nullptr
,它还将匹配结果写入由rmatch指向的QRegularExpressionMatch对象。
注意:由于正则表达式匹配算法的工作方式,此函数将实际上从字符串视图的开始位置重复匹配,直到达到位置 from。
此函数自 Qt 6.1 开始引入。
[constexpr noexcept]
bool QStringView::isEmpty() const
返回此字符串视图是否为空——也就是说,是否size() == 0
。
此函数提供与其他Qt容器的兼容性。
另请参阅empty(),isNull(),size() 和 length()。
[noexcept, since 6.7]
bool QStringView::isLower() const
如果此视图与其小写折叠相同,则返回 true
。
注意,这并不意味着字符串视图不包含大写字母(某些大写字母没有小写折叠,它们在toString().toLower()中被保持不变)。有关更多信息,请参阅Unicode标准,第3.13节。
此函数在Qt 6.7中引入。
另请参阅QChar::toLower() 和 isUpper()。
[constexpr noexcept]
bool QStringView::isNull() const
返回此字符串视图是否为空 - 也就是说,是否 data() == nullptr
。
此功能是为与其他 Qt 容器兼容而提供的。
另请参见empty()、isEmpty()、size() 以及 length()。
[noexcept]
bool QStringView::isRightToLeft() const
如果字符串视图是从右向左读取的,则返回 true
。
另请参见QString::isRightToLeft()。
[noexcept, since 6.7]
bool QStringView::isUpper() const
如果此视图与其大写折叠视图相同,则返回 true
。
请注意,这并不意味着字符串视图不包含小写字母(某些小写字母没有大写折叠;它们通过 toString() 不受 toUpperCase 操作的影响)。有关更多信息,请参阅 Unicode 标准,第 3.13 节。
此函数在Qt 6.7中引入。
另请参见QChar::toUpper() 和 isLower()。
[noexcept]
bool QStringView::isValidUtf16() const
如果字符串视图包含有效的 UTF-16 编码数据,则返回 true
,否则返回 false
。
请注意,此函数不会执行任何特殊的数据验证;它只是检查数据是否可以从 UTF-16 成功解码。数据假定为主机字节序;BOM 的存在没有意义。
另请参见QString::isValidUtf16()。
[constexpr noexcept, since 6.0]
QStringView QStringView::last(qsizetype n) const
返回一个字符串视图,该视图指向此字符串视图的最后 n 个字符。
注意:当 n < 0或 n > size()时,行为是未定义的。
此函数自 Qt 6.0 介绍。
另请参见first()、sliced()、endsWith()、chopped()、chop() 以及 truncate()。
[constexpr]
QChar QStringView::last() const
返回字符串视图的最后字符。与 back() 相同。
此函数提供与其他Qt容器的兼容性。
警告:在空字符串视图中调用此函数是未定义行为。
另请参见back()、front() 以及 first()。
[noexcept, since 6.3]
qsizetype QStringView::lastIndexOf(QChar c, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
此函数是 lastIndexOf() 的重载。
此功能在 Qt 6.3 中引入。
[since 6.2]
qsizetype QStringView::lastIndexOf(const QRegularExpression &re, QRegularExpressionMatch *rmatch = nullptr) const
返回字符串视图中正则表达式re最后一个匹配的索引位置。如果没有找到与re匹配的,返回-1。
如果匹配成功且rmatch不是 nullptr
,它还将匹配结果写入由rmatch指向的QRegularExpressionMatch对象。
注意:由于正则表达式匹配算法的工作方式,此函数实际上将从字符串视图的开始位置开始重复匹配,直到达到字符串视图的结尾。
此函数自 Qt 6.2 版本中引入。
[since 6.1]
qsizetype QStringView::lastIndexOf(const QRegularExpression &re, qsizetype from, QRegularExpressionMatch *rmatch = nullptr) const
返回字符串视图中正则表达式re最后一个匹配的索引位置,该匹配从索引位置from之前开始。
如果from为-1,则从最后一个字符开始搜索;如果为-2,则从倒数第二个字符开始搜索,依此类推。
如果没有找到与re匹配的,返回-1。
如果匹配成功且rmatch不是 nullptr
,它还将匹配结果写入由rmatch指向的QRegularExpressionMatch对象。
注意:由于正则表达式匹配算法的工作方式,此函数将实际上从字符串视图的开始位置重复匹配,直到达到位置 from。
注意:在搜索可能匹配0个字符的正则表达式re时,通过负的from,将数据末尾的匹配排除在搜索之外,尽管通常认为-1是搜索字符串视图的末尾:末尾的匹配是位于最后一个字符之后的,所以被排除。要包含此类最终空匹配,要么为from提供正值,要么完全省略from参数。
此函数自 Qt 6.1 开始引入。
[constexpr noexcept]
qsizetype QStringView::length() const
与size()相同。
此函数提供与其他Qt容器的兼容性。
另请参阅:empty(),isEmpty(),isNull(),和size()。
[since 6.4]
int QStringView::localeAwareCompare(QStringView other) const
比较此字符串视图与other字符串视图,并返回一个整数,如果此字符串视图小于、等于或大于other字符串视图,则分别小于、等于或大于零。
比较是在区域设置和平台相关的模式下执行的。使用此函数向用户展示排序好的字符串列表。
此功能是在Qt 6.4中引入的。
另请参阅:比较字符串。
[noexcept]
QStringView::const_reverse_iterator QStringView::rbegin() const
返回一个指向字符串视图的第一个字符的常量STL样式反向迭代器,顺序相反。
此函数提供以实现 STL 兼容性。
另请参阅:rend(),crbegin(),和begin()。
[noexcept]
QStringView::const_reverse_iterator QStringView::rend() const
返回一个指向字符串视图末尾之后的字符的STL样式反向迭代器,顺序相反。
此函数提供以实现 STL 兼容性。
[constexpr noexcept]
qsizetype QStringView::size() const
返回此字符串视图的大小,以UTF-16代码单元为单位(即,在此函数中,替代对被视为两个,与QString相同)。
另请参阅empty()、isEmpty()、isNull() 和 length()。
[constexpr noexcept, since 6.0]
QStringView QStringView::sliced(qsizetype pos, qsizetype n) const
返回一个指向此字符串视图从pos开始的n个字符的新字符串视图。
注意:当 pos < 0、n < 0 或 pos + n > size() 时,行为未定义。
此函数自 Qt 6.0 介绍。
另请参阅first()、last()、chopped()、chop() 和 truncate()。
[constexpr noexcept, since 6.0]
QStringView QStringView::sliced(qsizetype pos) const
这是一个重载函数。
返回从位置pos开始的字符串视图,并扩展到此对象的末尾。
注意:当 pos < 0 或 pos > size() 时,行为未定义。
此函数自 Qt 6.0 介绍。
另请参阅first()、last()、chopped()、chop() 和 truncate()。
[since 6.0]
QList<QStringView> QStringView::split(const QRegularExpression &re, Qt::SplitBehavior behavior = Qt::KeepEmptyParts) const
在正则表达式re与字符串中的任何地方匹配的地方拆分字符串,并返回这些字符串的列表。如果re在字符串中任何地方都不匹配,split() 返回一个单元素列表,其中包含此字符串作为视图。
注意:返回列表中的视图是此视图的子视图;因此,它们引用相同的数据,并且仅在数据保持有效时才有效。
此函数自 Qt 6.0 介绍。
[since 6.0]
CFStringRef QStringView::toCFString() const
从此QStringView创建一个 CFString。
调用者拥有 CFString 并负责释放它。
注意:此功能仅在 macOS 和 iOS 上可用。
此函数自 Qt 6.0 介绍。
[since 6.0]
double QStringView::toDouble(bool *ok = nullptr) const
返回将字符串视图转换为 double
值。
如果转换溢出,则返回无穷大,如果由于其他原因(例如下溢)转换失败,则返回 0.0。
如果 ok 不是 nullptr
,则通过将 ok 设置为 false
报告失败,并将成功设置为 true
。
字符串转换将始终在 'C' 区域设置中发生。对于依赖区域的转换,请使用 QLocale::toDouble().
由于历史原因,此功能不处理千位分隔符。如果您需要转换此类数字,请使用QLocale::toDouble。
此函数自 Qt 6.0 介绍。
另请参阅QString::toDouble。
[自 6.0 版开始]
float QStringView::toFloat(bool *ok = nullptr) const
返回将字符串视图转换为浮点值。
如果转换溢出,则返回无穷大,如果由于其他原因(例如下溢)转换失败,则返回 0.0。
如果 ok 不是 nullptr
,则通过将 ok 设置为 false
报告失败,并将成功设置为 true
。
字符串转换始终在 'C' 位置发生。如果需要依赖位置的转换,请使用 QLocale::toFloat()
此函数自 Qt 6.0 介绍。
另请参阅QString::toFloat。
[自 6.0 版开始]
int QStringView::toInt(bool *ok = nullptr, int base = 10) const
使用基数 base 将字符串视图转换为 int
,默认为 10,必须在 2 和 36 之间,或为 0。如果转换失败,则返回 0。
如果 ok 不是 nullptr
,则通过将 ok 设置为 false
报告失败,并将成功设置为 true
。
如果 base 为 0,则使用 C 语言约定:如果字符串视图以 "0x" 开头,请使用基数 16;如果字符串视图以 "0" 开头,请使用基数 8;否则,使用基数 10。
字符串转换始终在 'C' 位置发生。如果需要依赖位置的转换,请使用 QLocale::toInt()
此函数自 Qt 6.0 介绍。
另请参阅QString::toInt。
QByteArray QStringView::toLatin1() const
将字符串转换为拉丁-1表示形式,并以 QByteArray 返回。
如果字符串包含非拉丁-1字符,则行为未定义。
另请参阅toUtf8,toLocal8Bit 和 QStringEncoder。
QByteArray QStringView::toLocal8Bit() const
将字符串的字节表示形式作为 QByteArray 返回。
在 Unix 系统上,此方法与 toUtf8 等效,在 Windows 上使用系统的当前代码页。
如果字符串包含不支持位置 8 位编码的字符,则行为未定义。
另请参阅toLatin1,toUtf8 和 QStringEncoder。
[自 6.0 版开始]
long QStringView::toLong(bool *ok = nullptr, int base = 10) const
使用基数 base 将字符串视图转换为 long
,默认为 10,必须在 2 和 36 之间,或为 0。如果转换失败,则返回 0。
如果 ok 不是 nullptr
,则通过将 ok 设置为 false
报告失败,并将成功设置为 true
。
如果 base 为 0,则使用 C 语言约定:如果字符串视图以 "0x" 开头,请使用基数 16;如果字符串视图以 "0" 开头,请使用基数 8;否则,使用基数 10。
字符串转换始终在 'C' 位置发生。如果需要依赖位置的转换,请使用 QLocale::toLong()
此函数自 Qt 6.0 介绍。
另请参阅QString::toLong。
[自 6.0 版开始]
qlonglong QStringView::toLongLong(bool *ok = nullptr, int base = 10) const
将字符串视图转换为以基数 base 表示的 long long
,默认基数为 10,必须在 2 到 36 之间,或为 0。转换失败时返回 0。
如果 ok 不是 nullptr
,则通过将 ok 设置为 false
报告失败,并将成功设置为 true
。
如果 base 为 0,则使用 C 语言约定:如果字符串视图以 "0x" 开头,请使用基数 16;如果字符串视图以 "0" 开头,请使用基数 8;否则,使用基数 10。
字符串转换总是在 'C' 区域设置中进行。对于依赖于区域设置的转换,请使用 QLocale::toLongLong()
此函数自 Qt 6.0 介绍。
另请参阅 QString::toLongLong()
[since 6.0]
NSString *QStringView::toNSString() const
从此 QStringView 创建一个 NSString。
NSString 将被自动释放。
注意:此功能仅在 macOS 和 iOS 上可用。
此函数自 Qt 6.0 介绍。
[since 6.0]
short QStringView::toShort(bool *ok = nullptr, int base = 10) const
将字符串视图转换为以基数 base 表示的 short
,默认基数为 10,必须在 2 到 36 之间,或为 0。转换失败时返回 0。
如果 ok 不是 nullptr
,则通过将 ok 设置为 false
报告失败,并将成功设置为 true
。
如果 base 为 0,则使用 C 语言约定:如果字符串视图以 "0x" 开头,请使用基数 16;如果字符串视图以 "0" 开头,请使用基数 8;否则,使用基数 10。
字符串转换总是在 'C' 区域设置中进行。对于依赖于区域设置的转换,请使用 QLocale::toShort()
此函数自 Qt 6.0 介绍。
另请参阅 QString::toShort()
QString QStringView::toString() const
返回此字符串视图数据的深度副本,作为 QString。
如果且仅当此字符串视图为空时,返回值将是 null QString。
[since 6.0]
uint QStringView::toUInt(bool *ok = nullptr, int base = 10) const
将字符串视图转换为以基数 base 表示的 unsigned int
,默认基数为 10,必须在 2 到 36 之间,或为 0。转换失败时返回 0。
如果 ok 不是 nullptr
,则通过将 ok 设置为 false
报告失败,并将成功设置为 true
。
如果 base 为 0,则使用 C 语言约定:如果字符串视图以 "0x" 开头,请使用基数 16;如果字符串视图以 "0" 开头,请使用基数 8;否则,使用基数 10。
字符串转换总是在 'C' 区域设置中进行。对于依赖于区域设置的转换,请使用 QLocale::toUInt()
此函数自 Qt 6.0 介绍。
另请参阅 QString::toUInt()
[since 6.0]
ulong QStringView::toULong(bool *ok = nullptr, int base = 10) const
将字符串视图转换为以基数 base 表示的 unsigned long
,默认基数为 10,必须在 2 到 36 之间,或为 0。转换失败时返回 0。
如果 ok 不是 nullptr
,则通过将 ok 设置为 false
报告失败,并将成功设置为 true
。
如果 base 为 0,则使用 C 语言约定:如果字符串视图以 "0x" 开头,请使用基数 16;如果字符串视图以 "0" 开头,请使用基数 8;否则,使用基数 10。
字符串转换总是在 'C' 区域设置中进行。对于依赖于区域设置的转换,请使用 QLocale::toULongLong()
此函数自 Qt 6.0 介绍。
另请参阅 QString::toULong()
[since 6.0]
qulonglong QStringView::toULongLong(bool *ok = nullptr, int base = 10) const
将字符串视图转换为以基数 base 表示的 unsigned long long
,默认基数为 10,必须在 2 到 36 之间,或为 0。转换失败时返回 0。
如果 ok 不是 nullptr
,则通过将 ok 设置为 false
报告失败,并将成功设置为 true
。
如果 base 为 0,则使用 C 语言约定:如果字符串视图以 "0x" 开头,请使用基数 16;如果字符串视图以 "0" 开头,请使用基数 8;否则,使用基数 10。
字符串转换总是在 'C' 区域设置中进行。对于依赖于区域设置的转换,请使用 QLocale::toULongLong()
此函数自 Qt 6.0 介绍。
另请参阅 QString::toULongLong()
[自6.0起]
ushort QStringView::toUShort(bool *ok = nullptr, int base = 10) const
将字符串视图转换为一个无符号短整数,使用基数 base,默认为10,必须在2到36之间,或为0。如果转换失败则返回0。
如果 ok 不是 nullptr
,则通过将 ok 设置为 false
报告失败,并将成功设置为 true
。
如果 base 为 0,则使用 C 语言约定:如果字符串视图以 "0x" 开头,请使用基数 16;如果字符串视图以 "0" 开头,请使用基数 8;否则,使用基数 10。
字符串转换总是在'C'区域设置中发生。对于区域设置相关的转换请使用 QLocale::toUShort()
此函数自 Qt 6.0 介绍。
另请参阅 QString::toUShort().
QList<uint> QStringView::toUcs4() const
返回字符串视图作为一个 QList<uint> 的 UCS-4/UTF-32 表示。
UCS-4 是一个 Unicode 编码器,因此它是不易失的。此字符串视图中的所有字符都将编码为 UCS-4。在此字符串视图中任何无效的字节序列将由 Unicode 替换字符(QChar::ReplacementCharacter,对应于 U+FFFD
)替换。
返回的列表不会以0结尾。
另请参阅 toUtf8(),toLatin1(),toLocal8Bit() 和 QStringEncoder。
QByteArray QStringView::toUtf8() const
返回字符串视图作为一个 QByteArray 的 UTF-8 表示。
UTF-8 是一个 Unicode 编码器,可以表示像 QString 这样的 Unicode 字符串中的所有字符。
另请参阅 toLatin1(),toLocal8Bit() 和 QStringEncoder。
qsizetype QStringView::toWCharArray(wchar_t *array) const
将此字符串视图转录到指定的 array 中。
调用者负责确保 array 足够大,可以存储此字符串视图的 wchar_t
编码(用与字符串视图相同长度的数组分配总是足够的)。在 wchar_t
宽度为2字节的平台(例如 Windows)上,数组以 UTF-16 编码;否则(Unix 系统),假定 wchar_t
宽度为4字节,并以此写入数据。
注意: 此函数不会在 array 的末尾写入空终止符。
返回写入 array 中的 wchar_t
条目数目。
另请参阅 QString::toWCharArray().
[noexcept]
QStringView QStringView::trimmed() const
删除前导和尾随空白字符并返回结果。
空白字符是指 QChar::isSpace() 返回 true
的任何字符。这包括 ASCII 字符 '\t', '\n', '\v', '\f', '\r', 和 ' '。
[constexpr noexcept]
void QStringView::truncate(qsizetype length)
将此字符串视图截断为长度 length。
等同于 *this = left(length)
。
注意:当length小于0或大于size时,行为未定义。
另请参阅 mid(),left(),right(),chopped() 和 chop()).
[constexpr noexcept]
const QStringView::storage_type *QStringView::utf16() const
返回字符串视图中第一个字符的常量指针。
注意:返回值表示的字符数组不是以 null 结尾。
storage_type
是 char16_t
.
[noexcept, since 6.7]
std::u16string_view QStringView::operator std::u16string_view() const
将此 QStringView 对象转换为 std::u16string_view
对象。返回的视图将具有与本视图相同的数据指针和长度。
此函数在Qt 6.7中引入。
[constexpr]
QChar QStringView::operator[](qsizetype n) const
返回字符串视图中位置 n 的字符。
如果 n 为负数或不满 size,则行为是未定义的。
相关非成员
[noexcept]
bool operator!=(QStringView lhs, QStringView rhs)
[noexcept]
bool operator<(QStringView lhs, QStringView rhs)
[noexcept]
bool operator<=(QStringView lhs, QStringView rhs)
[noexcept]
bool operator==(QStringView lhs, QStringView rhs)
[noexcept]
bool operator>(QStringView lhs, QStringView rhs)
[noexcept]
bool operator>=(QStringView lhs, QStringView rhs)
比较 lhs 和 rhs 的操作符。
另请参阅 compare()).
[noexcept]
size_t qHash(QStringView key, size_t seed = 0)
返回 key 的哈希值,使用 seed 作为计算种子。
© 2024 Qt 公司有限公司。本文档中包含的文档贡献的版权归其各自的所有者所有。本提供的文档均受GNU 自由文档许可版1.3条款的许可,该许可由自由软件基金会发布。Qt 及其相关标志是芬兰的 Qt 公司及其它国家/地区的商标。所有其他商标均属于其各自的所有者。