2017-06-13 71 views
-4

如何獲得後續輸出[「1」,「2」,「3」,「4」,...]或[「one」,「two」 「3」,「4」,...]從這個Array [「1 one」,「2 two」,「3 three」,「4 four」,...]循環在Array Swift中分割一個字符串3

+1

不需要一個循環以下解決方案。調用'map'並通過'space'在閉包中分割字符串並返回第一個或第二個項目。 – vadian

+0

感謝vadian,但是我怎樣才能調用map來分割數組中的String?輸入= [「1 one」,「2 two」,「3 three」,「4 four」] – Nelson

+0

var out1:[String] = [] var out2:[String] = [] input.forEach (先前)let last = comps.first,let last = comps.last else {return} 0121.txt(out).append(first) out2.append(last) } ' –

回答

0

你可以簡單地用for循環分割它。

var str = ["1 one", "2 two", "3 three", "4 four"] 

var first: [String] = [] 
var second: [String] = [] 
var splited: [String] = [] 

for value in str { 
    splited = value.components(separatedBy: " ") 
    first.append(splited[0]) 
    second.append(splited[1]) 
} 

感謝@馬丁 - [R

+0

@MartinR,循環使用有不同的方法。有不同的優點和缺點。起初,我使用了'我在0 ... str.count - 1 {...}'。但之後我改變了主意。 – Mina

+0

@MartinR你的建議是什麼? – Mina

0

嘗試在此格式Array ["1 one", "2 two", "3 three", "4 four", ...]

var firstValArr : [String]? 
var lastValArr : [String]? 
for i in 0 ..< yourArray.count { 
    let arrayElement = yourArray[i] 
    let splitArrayElement = arrayElement.components(separatedBy: " ") 
    let firstValue = splitArrayElement[0] 
    let lastValue = splitArrayElement[1] 
    firstValArr.append(firstValue) 
    lastValArr.append(lastValue) 
} 
print("First Value Array : \(firstValArr)") 
print("Last Value Array: \(lastValArr)") 
+1

的最佳方式是用小寫字母開頭的Swift慣例。順便說一句,使用數組(這是一個Swift本機類型)作爲它的名字是非常誤導 –