dropLast方法將返回離開關掉落的物品子序列,所以在這種情況下,它不會修改結果變量,那麼你就需要創建一個基於dropLast方法調用的結果產生一個新字符串並將其分配給結果變量。
var result: String = "1.00"
var dropCount = getTrailingDecimalCount(from: result)
print(dropCount) // outputs 2
if let dropCount = dropCount {
result = String(result.characters.dropLast(dropCount))
print(result) // outputs 1.
}
func getTrailingDecimalCount(from string: String) -> Int? {
var counter = 0
guard string.characters.contains(".") else {
return nil
}
for char in string.characters.reversed() {
if char == "." {
break
}
counter = counter + 1
}
return counter
}
工作感謝喲ü,但是需要我花一些時間來理解它:D特別是範圍位......但是在任何情況下都要謝謝! – Brewski
*範圍位*的類型是'Range',可以用半開範圍運算符'.. <'創建。在這種情況下,'range'參數甚至可以省略。正則表達式模式在字符串末尾搜索一個點('\\。'),後面跟着一個或多個零位('0 +')* –
vadian
@Brewski:在Swift 3中,範圍:'參數是可選的,你可以簡單地省略它。 –