删除字符串中的最后两个字符(Swift 3.0)

时间:2016-10-13 18:07:49

标签: ios swift string swift3

有没有一种快速方法可以删除Swift 3.0中字符串中的最后两个字符?我看到有一种简单的方法可以删除最后一个字符here。你知道如何删除最后两个字符吗?谢谢!

5 个答案:

答案 0 :(得分:110)

更新: Xcode 9•Swift 4或更高版本

现在String符合RangeReplaceableCollection,所以现在你可以直接在String中使用Array的方法dropLast,因此不再需要扩展。唯一的区别是它返回一个子串。如果你需要一个String,你需要从中初始化一个新的:

let string = "0123456789"
let substring1 = string.dropLast(2)         // "01234567"
let substring2 = substring1.dropLast()      // "0123456"
let result = String(substring2.dropLast())  // "012345"

Swift 3.x

您可以在字符上使用dropLast(n :)方法删除任意数量的字符:

let str = "0123456789"
let result = String(str.characters.dropLast(2))   // "01234567"

作为扩展名:

extension String {
    func dropLast(_ n: Int = 1) -> String {
        return String(characters.dropLast(n))
    }
    var dropLast: String {
        return dropLast()
    }
}
let str = "0123456789"

let result = str.dropLast(2)     // "01234567"
let result2 = result.dropLast    // "0123456"

答案 1 :(得分:53)

var name: String = "Dolphin"
let endIndex = name.index(name.endIndex, offsetBy: -2)
let truncated = name.substring(to: endIndex)
print(name)      // "Dolphin"
print(truncated) // "Dolph"

答案 2 :(得分:19)

斯普利特4:

Date        |    Quantity
10-09-2016  |    1
11-09-2016  |    2
14-09-2016  |    0
16-09-2016  |    1
17-09-2016  |    0
20-09-2016  |    2

答案 3 :(得分:1)

使用removeSubrange(Range<String.Index>)就像:

var str = "Hello, playground"
str.removeSubrange(Range(uncheckedBounds: (lower: str.index(str.endIndex, offsetBy: -2), upper: str.endIndex)))

如果字符串长度少于2个字符,则会崩溃。这是你的要求吗?

答案 4 :(得分:0)

更好地使用removeLast()

python manage.py makemigrations
python manage.py migrate