我尝试使用以下命令打印CharacterSet.decimalDigits
的内容:
print(CharacterSet.decimalDigits)
输出:CFCharacterSet预定义的DecimalDigit Set
但是我的期望是这样的:
[1、2、3、4 ...]
所以我的问题是:如何打印CharacterSet.decimalDigits
的内容?
答案 0 :(得分:0)
这不容易。字符集不是要迭代的,它们是用来检查字符是否在其中。它们本身不包含字符,并且无法访问范围。
您唯一可以做的就是遍历所有字符,并对照字符集检查每个字符,例如:
let set = CharacterSet.decimalDigits
let allCharacters = UInt32.min ... UInt32.max
allCharacters
.lazy
.compactMap { UnicodeScalar($0) }
.filter { set.contains($0) }
.map { String($0) }
.forEach { print($0) }
但是,请注意,这样的事情需要花费大量时间,因此不应在生产应用程序中使用。
答案 1 :(得分:0)
我认为您不能做到这一点,至少不能直接做到这一点。如果您查看
的输出let data = CharacterSet.decimalDigits.bitmapRepresentation
for byte in data {
print(String(format: "%02x", byte))
}
您会看到该集合在内部将位存储在十进制数字所在的代码位置。