2017-06-13 74 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本机类型)作为它的名字是非常误导 –