将unichar转换为String?

ale*_*son 6 swift

我得到了一个unicharNSString实例方法返回的类型characterAtIndex(Int),我想将它与Swift类型进行比较String.是否有捷径可寻?

var str = "#ffffff"
var unichar = (str as NSString).characterAtIndex(0)
var unicharString = // Perform magic
var containsHash = unicharString == "#" // Should return `true`
Run Code Online (Sandbox Code Playgroud)

谢谢

小智 9

使用UnicodeScalar将unichar转换为String或Character(String的元素).

var str = "#ffffff"
var unichar = (str as NSString).characterAtIndex(0)
var unicharString = Character(UnicodeScalar(unichar))
var containsHash = unicharString == "#"
Run Code Online (Sandbox Code Playgroud)
  • unichar是UInt16(typealias unichar = UInt16)的别名.
  • UnicodeScalar有init(_ v: UInt16).
  • 字符(String的元素)有init(_ scalar: UnicodeScalar).

注意:字符串也有init(count: Int, repeatedValue c: UnicodeScalar),但这不适合这种情况.


Das*_*ash 2

var str:String = "#ffffff"
var unichar = str[str.startIndex]
var unicharString = "\(unichar)"
var containsHash = unicharString == "#"
Run Code Online (Sandbox Code Playgroud)