跳到正文
Yayin Story Studio Yayin Story Studio 项目文档

Visindigo::Utility::StringUtility Class

class Visindigo::Utility::StringUtility

提供一些字符串相关的实用函数. 详情...

头文件: #include <StringUtility>
自以下版本: Visindigo 0.14.0

静态公开成员

(自 Visindigo 0.16.0 引入) QString autoElide(const QString &str, qint32 maxLength, const QString &elideStr = "...")
(自 Visindigo 0.14.0 引入) QStringList deduplicate(const QStringList &list)
(自 Visindigo 0.14.0 引入) qint32 getLevensteinDistance(const QString &s1, const QString &s2)
(自 Visindigo 0.14.0 引入) QStringList getSimilarStrings(const QString &target, const QStringList &candidates, int maxDistance = 3)
(自 Visindigo 0.14.0 引入) QStringList getStartWith(const QString &str, const QStringList &candidates, bool caseSensitive = true)
(自 Visindigo 0.16.0 引入) Visindigo::Utility::StringUtility::Statistic getStatistic(const QString &str)
(自 Visindigo 0.15.0 引入) bool isAllBlank(const QString &str)
(自 Visindigo 0.16.0 引入) bool isCJKV(int codePoint)

详细说明

这个类提供一些和字符串相关的使用函数,它们都是静态函数。

成员函数文档

[static, since Visindigo 0.16.0] QString StringUtility::autoElide(const QString &str, qint32 maxLength, const QString &elideStr = "...")

str 输入字符串 maxLength 最大长度 elideStr 省略符字符串,默认为"..."。

return 如果输入字符串的长度超过最大长度,则返回一个被截断并添加省略符的字符串;否则返回原字符串。

这个function 从 Visindigo 0.16.0 开始支持。

[static, since Visindigo 0.14.0] QStringList StringUtility::deduplicate(const QStringList &list)

list 输入字符串列表

return 一个字符串列表,包含输入列表中所有不重复的字符串。重复的字符串只保留第一次出现的。

这个function 从 Visindigo 0.14.0 开始支持。

[static, since Visindigo 0.14.0] qint32 StringUtility::getLevensteinDistance(const QString &s1, const QString &s2)

s1 目标字符串 s2 候选字符串

return 两个字符串的编辑距离。编辑距离是指将一个字符串转换成另一个字符串所需要的最少编辑操作次数, 编辑操作包括插入一个字符、删除一个字符和替换一个字符。

一般而言,如果编辑距离不小于最短字符串的长度,可以认为这两个字符串完全不同。 如果将此函数用于纠错,可以考虑将编辑距离为1或2的字符串视为可能的纠错候选项。

这个function 从 Visindigo 0.14.0 开始支持。

[static, since Visindigo 0.14.0] QStringList StringUtility::getSimilarStrings(const QString &target, const QStringList &candidates, int maxDistance = 3)

target 目标字符串 candidates 候选字符串列表 maxDistance 最大编辑距离

return 一个字符串列表,包含所有与目标字符串的编辑距离不大于maxDistance的候选字符串。

这个function 从 Visindigo 0.14.0 开始支持。

[static, since Visindigo 0.14.0] QStringList StringUtility::getStartWith(const QString &str, const QStringList &candidates, bool caseSensitive = true)

str 输入字符串 candidates 候选字符串列表 caseSensitive 是否区分大小写

return 一个字符串列表,包含所有以指定字符串开头的候选字符串。可以选择是否区分大小写。

这个function 从 Visindigo 0.14.0 开始支持。

[static, since Visindigo 0.16.0] Visindigo::Utility::StringUtility::Statistic StringUtility::getStatistic(const QString &str)

str 输入字符串

return 一个包含字数、字符数、段落数等信息的统计结果。

统计规则: - WordCount:每个 CJKV 字符计为一个字,连续的由非 CJKV、非空白、非标点字符组成的片段计为一个词, 非 CJKV 标点也会作为词边界; - CharCountIncludeWhitespace:按 Unicode 码点计数的总字符数(包含空白); - CharCountExcludeWhitespace:不含空白字符的字符数; - CJKVCharCount / NonCJKVCharCount:中、日、韩、越(CJKV)相关字符的个数; - ParagraphCount:以换行符分隔的非空段落个数。

这个function 从 Visindigo 0.16.0 开始支持。

[static, since Visindigo 0.15.0] bool StringUtility::isAllBlank(const QString &str)

str 输入字符串

return 一个字符串是否全部由空白字符组成。空白字符包括空格、制表符、换行符等。

这个function 从 Visindigo 0.15.0 开始支持。

[static, since Visindigo 0.16.0] bool StringUtility::isCJKV(int codePoint)

codePoint 一个 Unicode 码点

return 该码点是否属于 CJKV (中日韩越统一表意文字)相关字符,包括 CJK 统一表意文字及其扩展区、 平假名、片假名、谚文、注音、CJK 符号与标点、全角/半角形式等。

这个function 从 Visindigo 0.16.0 开始支持。