如何获取字符串的最后4个字符?

do *_*ter 75 string swift

我需要分隔一个字符串的最后4个字母.我怎么能分开呢?字符串的长度在变化.

例如:

var a = "StackOverFlow"
var last4 = a.lastFour //That's what I want to do
print(last4) //prints Flow
Run Code Online (Sandbox Code Playgroud)

vad*_*ian 224

一个解决方案是 substringFromIndex

let a = "StackOverFlow"
let last4 = a.substringFromIndex(a.endIndex.advancedBy(-4))
Run Code Online (Sandbox Code Playgroud)

suffixcharacters

let last4 = String(a.characters.suffix(4))
Run Code Online (Sandbox Code Playgroud)

代码是Swift 2


斯威夫特3:

在Swift 3中,第一个解决方案的语法已更改为

let last4 = a.substring(from:a.index(a.endIndex, offsetBy: -4))
Run Code Online (Sandbox Code Playgroud)

斯威夫特4:

在Swift 4中它变得更方便:

let last4 = a.suffix(4)
Run Code Online (Sandbox Code Playgroud)

结果的类型是一种新类型Substring,String在许多情况下表现为.但是,如果子串应该离开创建它的范围,则必须创建一个新String实例.

let last4 = String(a.suffix(4))
Run Code Online (Sandbox Code Playgroud)

  • 请注意,如果字符串长度小于 4 个字符,则子字符串将崩溃 (2认同)

spa*_*610 14

String substr = a.substring(a.length() - 4)
Run Code Online (Sandbox Code Playgroud)

语法错了.在Swift的vars之前没有类型.

let a = "1234567890"
let last4 = String(a.characters.suffix(4))
print(last4)
Run Code Online (Sandbox Code Playgroud)

适用于Swift 3.0