我如何给自定义索引字符串.索引工作与unicode在Swift?



我想给我的代码一个自定义索引,这意味着自定义字符串/字符读取unicodeScalars的字符串在那个空间位置,例如这个向下的代码工作string.startIndex,但是我不能改变我想要的索引,甚至代码在运行时给string.endIndex错误所以我需要帮助,现在这段代码只适用于字符串的索引0,例如,我想让它适用于index = 1这意味着B我该怎么做呢?

let string: String = "ABC"
let UInt32Value: UInt32 = string.unicodeScalars[string.startIndex].value
print(UInt32Value)

更新:可以用customIndex代替string.startIndex

let index: Int = 1
let customIndex: String.Index = string.index(string.startIndex, offsetBy: index)

仍然需要帮助来了解为什么string.endIndex不工作! ? !

您可以在String上创建一个扩展,其中您将索引作为String.IndexInt,然后使用它来下标unicodeScalars

extension String {
func unicodeScalarValue(at index: String.Index) -> UInt32 {
unicodeScalars[index].value
}

func unicodeScalarValue(at index: Int) -> UInt32 {
unicodeScalars[self.index(startIndex, offsetBy: index)].value
}
}
"ABC".unicodeScalarValue(at: 0)
"ABC".unicodeScalarValue(at: 1)
"ABC".unicodeScalarValue(at: 2)

最新更新