gpt4 book ai didi

Swift:检查String的第一个字符是ASCII还是带重音的字母

转载 作者:行者123 更新时间:2023-11-28 05:34:25 24 4
gpt4 key购买 nike

在 Swift 中,如何检查 String 的第一个字符是 ASCII 还是带重音符号的字母? 较宽的字符,如表情符号和语标,不算数。

我正在尝试复制 iPhone 消息应用程序如何在群聊中的消息旁边显示一个人的姓名首字母。但是,如果它是表情符号或汉字,则不包含首字母。

我看到了 decomposableCharacterSetnonBaseCharacterSet,但我不确定它们是否是我想要的。

最佳答案

有许多带有重音符号的 Unicode 字符。这对你来说是一个有口音的角色吗?

ÊÐ我ḜṸ é⃝


Unicode 中有组合字符,即两个 Unicode 字符合二为一:

let eAcute: Character = "\u{E9}"                         // é
let combinedEAcute: Character = "\u{65}\u{301}" // e followed by ́
// eAcute is é, combinedEAcute is é

对于 Swift,Character 是一样的!

很好的引用是 here .


如果想知道String中字符的CodeUnit,可以使用utf8utf16属性。他们是不同的!

let characterString: String = "abc"
for character in characterString.utf8 {
print("\(character) ")
}
// output are decimal numbers: 97 98 99
// output of only é: 195 169, used the combined é

然后您可以检查 ASCII 字母表 A-Z 为 65-90 和 a-z 为 97-122。然后检查标准重音和尖音À 192193Ø 200É 201à 224225è 232é 233...以及组合的和你喜欢的一切。

但有些符号看起来像带有重音符号的拉丁字母,但含义并不相同!

您应该确保只有这些字符被接受,并且您希望这些字符具有正确的语言含义。

关于Swift:检查String的第一个字符是ASCII还是带重音的字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25203341/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com