Swift字符串中的字符是如何表示的?

 cl357_475 发布于 2023-01-12 09:02

与其他一些表情符号字符一样,0x0001F1E9 0x0001F1EA组合(德国标志)在屏幕上表示为单个字符,尽管它实际上是两个不同的Unicode字符点组合在一起.它在Swift中表示为一个或两个不同的字符吗?

3 个回答
  • let flag = "\u{1f1e9}\u{1f1ea}"
    

    然后flag是.

    有关更多区域指标符号,请参阅:http:
    //en.wikipedia.org/wiki/Regional_Indicator_Symbol

    2023-01-12 09:04 回答
  • Swift 3在其String结构中实现了Unicode .在Unicode中,所有标志都是区域指示符号对.所以, is actually 接着是 (try copying the two and pasting them next to eachother!).

    When two or more Regional Indicator Symbols are placed next to eachother, they form an "Extended Grapheme Cluster", which means they're treated as one character. This is why " = ...".characters给你["", " ", "=", " ", "", ".", ".", "."].

    如果你想看到每一个Unicode代码点(AKA"标量"),你可以使用.unicodeScalars,这样就可以"Hi!".unicodeScalars["H", "i", "", "", "!"]

    TL;博士

    是一个字符(在Swift和Unicode中),由两个代码点(AKA标量)组成.不要忘记这些是不同的!


    也可以看看

    为什么像????这样的表情符号字符在Swift字符串中处理得如此奇怪?

    Swift编程语言(Swift 3.1) - 字符串和字符 - Unicode

    2023-01-12 09:07 回答
  • 与此同时,Swift也增加了对"扩展字形集群"的支持.迭代字符串的字符会为"flags"生成一个字符:

    let string = "Hi!"
    for char in string.characters {
        print(char)
    }
    

    输出:

    H
    i
    
    !
    

    2023-01-12 09:07 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有