I need to get the last 4 letters of a string. How can I do that? The length of the string varies.
Example:
var a = "StackOverFlow" var last4 = a.lastFour // That's what I want to do print(last4) // prints Flow Swift 2:
A solution is substringFromIndex
let a = "StackOverFlow" let last4 = a.substringFromIndex(a.endIndex.advancedBy(-4)) or suffix on characters
let last4 = String(a.characters.suffix(4)) Swift 3:
In Swift 3 the syntax for the first solution has been changed to
let last4 = a.substring(from:a.index(a.endIndex, offsetBy: -4)) Swift 4+:
In Swift 4 it becomes more convenient:
let last4 = a.suffix(4) The type of the result is a new type Substring which behaves as a String in many cases. However if the substring is supposed to leave the scope where it's created in you have to create a new String instance.
let last4 = String(a.suffix(4)) [1,2,3].map({"Int(\($0))"}).joined(separator: ", ").last(x) -- we don't have a handle on the string in such situations!String([1,2,3].map({"Int(\($0))"}).joined(separator: ", ").characters.suffix(4)) does not work?String substr = a.substring(a.length() - 4) syntax is wrong. no type before vars in Swift.
let a = "1234567890" let last4 = String(a.characters.suffix(4)) print(last4) works on Swift 3.0
[1,2,3].map({"Int(\($0))"}).joined(separator: ", ").last(x),substringWithRangeand friends are useless..suffix(4)