我只想在Swift中获取单个字符字符串的ASCII值。这是我目前正在做的事情:
var singleChar = "a"
println(singleChar.unicodeScalars[singleChar.unicodeScalars.startIndex].value) //prints: 97
这太丑了。必须有一个更简单的方法。
编辑/更新Swift 5.2或更高版本
extension StringProtocol {
var asciiValues: [UInt8] { compactMap(\.asciiValue) }
}
"abc".asciiValues // [97, 98, 99]
在Swift
5中,您可以使用新的字符属性isASCII和asciiValue
Character("a").isASCII // true
Character("a").asciiValue // 97
Character("á").isASCII // false
Character("á").asciiValue // nil
旧答案
您可以创建一个扩展:
Swift 4.2或更高版本
extension Character {
var isAscii: Bool {
return unicodeScalars.allSatisfy { $0.isASCII }
}
var ascii: UInt32? {
return isAscii ? unicodeScalars.first?.value : nil
}
}
extension StringProtocol {
var asciiValues: [UInt32] {
return compactMap { $0.ascii }
}
}
Character("a").isAscii // true
Character("a").ascii // 97
Character("á").isAscii // false
Character("á").ascii // nil
"abc".asciiValues // [97, 98, 99]
"abc".asciiValues[0] // 97
"abc".asciiValues[1] // 98
"abc".asciiValues[2] // 99
问题内容: 我只想在Swift中获取单个字符字符串的ASCII值。这是 我目前正在做的事情: 这太丑了。必须有一个更简单的方法。 问题答案: *编辑/更新Swift 5.2或更高版本 在Swift 5中,您可以使用新的字符属性 isASCII and asciiValue 旧答案 您可以创建一个扩展: Swift 4.2 or later
问题内容: 将格式化的字符串转换为日历的最简单,最简单的方法是什么?例如将“ dd.MM.yyyy”添加到日历? 问题答案: DateFormat df = new SimpleDateFormat(“dd.MM.yyyy”); Calendar cal = Calendar.getInstance(); cal.setTime(df.parse(stringInstanceRepresentin
我一直在研究如何将字符串转换为Rust中的大写字母。到目前为止,我找到的最理想的方法是: 有没有不那么冗长的方法? 注意:这个问题是专门针对Rust 0.9的。在提问时还有另一个相关的答案,但它是针对Rust 0.8的,它有显著的语法差异,因此不适用。
问题内容: 我一直在寻找将Swift中一个相当简单的JSON字符串转换为对象类型但无济于事的日子。 这是Web服务调用的代码: 我有一个快速的结构Business.swift: 这是我部署的测试服务: 如果有人通过这个指导我会很高兴。 谢谢。 问题答案: 这里有一些技巧,以简单的例子开始。 考虑您具有以下JSON Array String(类似于您的): [编辑] 摆脱null更改为: 另请参阅
如何从字符串生成有效的UUID?字符串本身不是我要找的。相反,我正在寻找类似于将任何字符串转换为有效 UUID 的哈希函数。
问题内容: ?将转换为并对其进行迭代?还有吗 问题答案: 我使用for循环来迭代字符串,并使用它来获取每个字符以进行检查。由于是通过数组实现的,因此该方法是恒定时间操作。 那就是我会做的。在我看来,这是最简单的。 就正确性而言,我认为这不存在。这完全取决于你的个人风格。