2017-09-27 56 views

回答

2

您可以使用dropFirst()dropFirst(_:)

dropFirst()

let names = "Steve Jobs Nojobs".components(separatedBy: " ") 
    let firstName = names.first! 
    let lastName = names.dropFirst().joined(separator: " ") 
    print(firstName)//Steve 
    print(lastName)//Jobs Nojobs 

dropFirst(_ :)

let names = "It is a long name".components(separatedBy: " ") 
let lastName = names.dropFirst(2).joined(separator: " ")   
print(lastName)//a long name 
0

嘗試此Swift3:

let array = ["zero", "one", "two", "three"] 
let str = array[1..<array.count].joined(separator: "-") 
// po str 
// "one-two-three" 
0

對於特定的這個問題,你可以這樣說:

  1. 刪除數組的第一個元素給你變量;
  2. 現在,最後一部分是你的姓氏。

例子:

var nameComponents = ["My", "name", "is"] 

let firstName = nameComponents.remove(at: 0) // "My" 
let lastName = nameComponents.joined(separator: " ") // "name is" 

但更實用的方法是使用array subscript by passing Range它。

let firstName = nameComponents.first! 

// Swift 3 
let lastName = nameComponents[1..<nameComponents.count].joined(separator: " ") 

// Swift 4 
let lastName = nameComponents[1...].joined(separator: " ") 
1

沒有必要完全如果您只想在第一個空格處分隔它,請將字符串拆分爲數組。 您可以找到第一個空間並直接確定它前後的部分。 實施例(SWIFT 3):

let string = "foo bar baz" 

if let range = string.range(of: " ") { 
    let firstPart = string.substring(to: range.lowerBound) 
    let remainingPart = string.substring(from: range.upperBound) 

    print(firstPart)  // foo 
    print(remainingPart) // bar baz 
} 

在夫特4你會提取部件與

let firstPart = String(string[..<range.lowerBound]) 
    let remainingPart = String(string[range.upperBound...]) 
+0

是否有任何等效的Objective-C溶液? –

+0

@RajeshkumarR:當然。 NSString有rangeOfString,substringToIndex和substringFromIndex方法。 –

相關問題