如何从一个字符串中提取表情符号?[英] How to extract emojis from a string?

本文是小编为大家收集整理的关于如何从一个字符串中提取表情符号?的处理方法,想解了如何从一个字符串中提取表情符号?的问题怎么解决?如何从一个字符串中提取表情符号?问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

我正在寻找一种方法来获取 String 并提取 Emoji 字符.我知道表情符号是 Unicode 的一部分,所以我需要删除 Unicode 字符的某个子集.我真的不知道从哪里开始.

推荐答案

表情符号集

首先,我们需要一个 Set,其中包含代表表情符号的 unicode 值.

<块引用>

免责声明

对于这个答案,我使用表情符号 (1F601-1F64F) 和 Dingbats (2702-27B0) 范围来向您展示解决方案.但是请记住,您应该根据需要添加 更多范围.

扩展字符

现在我们需要一种方法来计算字符的 Unicode 标量代码点.为此,我使用 here.

extension Character {
    private var unicodeScalarCodePoint: Int {
        let characterString = String(self)
        let scalars = characterString.unicodeScalars
        return Int(scalars[scalars.startIndex].value)
    }
}

扩展字符串

此扩展允许您从 String 中提取表情符号.

extension String {
    var emojis:[Character] {
        let emojiRanges = [0x1F601...0x1F64F, 0x2702...0x27B0]
        let emojiSet = Set(emojiRanges.flatten())
        return self.characters.filter { emojiSet.contains($0.unicodeScalarCodePoint) }
    }
}

测试

let sentence = "
					

本文地址:https://www.itbaoku.cn/post/924476.html