*编辑/更新Swift 5.2或更高版本
extension StringProtocol { var asciiValues: [UInt8] { compactMap(.asciiValue) }}"abc".asciiValues // [97, 98, 99]
在Swift 5中,您可以使用新的字符属性
isASCII
and
asciiValue
Character("a").isASCII // trueCharacter("a").asciiValue // 97Character("á").isASCII // falseCharacter("á").asciiValue // nil旧答案
您可以创建一个扩展:
Swift 4.2 or later
extension Character { var isAscii: Bool { return unipreScalars.allSatisfy { $0.isASCII } } var ascii: UInt32? { return isAscii ? unipreScalars.first?.value : nil }}extension StringProtocol { var asciiValues: [UInt32] { return compactMap { $0.ascii } }}Character("a").isAscii // trueCharacter("a").ascii // 97Character("á").isAscii // falseCharacter("á").ascii // nil"abc".asciiValues // [97, 98, 99]"abc".asciiValues[0] // 97"abc".asciiValues[1] // 98"abc".asciiValues[2] // 99


