Search code examples
swiftstringsubstringswift4

How can I remove the last character of a String in Swift 4?


How do I remove the last character of a string in Swift 4? I used to use substring in earlier versions of Swift, but the substring method is deprecated.

Here's the code I have.

temp = temp.substring(to: temp.index(before: temp.endIndex))

Solution

  • dropLast() is your safest bet, because it handles nils and empty strings without crashing (answer by OverD), but if you want to return the character you removed, use removeLast():

    var str = "String"
    let removedCharacter = str.removeLast() //str becomes "Strin"
                                            //and removedCharacter will be "g"
    

    A different function, removeLast(_:) changes the count of the characters that should be removed:

    var str = "String"
    str.removeLast(3) //Str
    

    The difference between the two is that removeLast() returns the character that was removed, while removeLast(_:) does not have a return value:

    var str = "String"
    print(str.removeLast()) //prints out "g"