您好,欢迎来到二三四教育网。
搜索
您的当前位置:首页显示CharacterSet中包含的字符

显示CharacterSet中包含的字符

来源:二三四教育网

Github Gist:

StackOverflow 讨论:

Unicode基本知识

代码原理

Unicode编码包含0..16共17个平面,遍历这17个平面,如果CharacterSet中有字符属于特定的平面的话,则遍历该平面,找出CharacterSet中在该平面的所有字符,添加到数组中作为返回。

Code (Swift3实现)

extension CharacterSet {
    var characters:[UnicodeScalar] {
        var chars = [UnicodeScalar]()
        for plane:UInt8 in 0...16 {
            if self.hasMember(inPlane: plane) {
                let p0 = UInt32(plane) << 16
                let p1 = (UInt32(plane) + 1) << 16
                for c:UInt32 in p0..<p1 {
                    if let us = UnicodeScalar(c) {
                        if self.contains(us) {
                            chars.append(us)
                        }
                    }
                    
                }
            }
        }
        return chars
    }
}

使用范例

print(CharacterSet.urlQueryAllowed.characters)

Copyright © 2019-2025 how234.cn 版权所有 赣ICP备2023008801号-2

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务