swift 4.1,xcode 9.3,cocoa App
如何从string.index获取Int以与其他属性编号一起使用?
@IBOutlet weak var inputFromTextField: NSTextField!
@IBAction func button(_ sender: NSButton) {
let temporaryHolder = inputFromTextField.stringValue.characters
for input in temporaryHolder {
let distance = temporaryHolder.index(of: input)
print(input)
print(distance + 100)
}
错误代码:
二进制运算符'+'不能应用于类型的操作数 “String._CharacterView.Index? (又名'Optional< String.Index>')和 'INT'
答案 0 :(得分:1)
您可以使用distance(from:to:)
来计算(整数)距离
从String.Index
到字符串的开始位置:
let str = "abab"
for char in str {
if let idx = str.index(of: char) {
let distance = str.distance(from: str.startIndex, to: idx)
print(char, distance)
}
}
但请注意index(of:)
会返回该字符的第一个索引
在字符串中,所以上面的代码将打印
a 0
b 1
a 0
b 1
如果您打算将字符串中的每个字符与运行偏移量一起使用,请使用enumerated()
for (distance, char) in str.enumerated() {
print(char, distance)
}
这将打印
a 0
b 1
a 2
b 3