将数组 int 附加到字符串数组
Posted
技术标签:
【中文标题】将数组 int 附加到字符串数组【英文标题】:Append array int to a string array 【发布时间】:2017-09-06 21:51:07 【问题描述】:我有一个字符串数组,它在单独的行上显示一个字符串。我想取一个 int 数组并显示在同一行。所以数组的条目是按顺序配对的。所以yourArray[1] = number[1]
、yourArray[2] = number[2]
等。所以我只是想在labez.text = sortedArray.map " ($0)" .joined(separator:"\n")
代码行中添加一个数字数组。
var yourArray = [String]()
var number = [Int]()
@IBAction func store(_ sender: Any)
yourArray.append((textA.text!))
number.append(Int(textB.text!)!)
labez.text = sortedArray.map " \($0)" .joined(separator:"\n")
let sortedArray:[String] = yourArray.sorted
$0.localizedCaseInsensitiveCompare($1) == ComparisonResult.orderedAscending
【问题讨论】:
也许可以巧妙地使用 map,但你也可以老老实实使用 for 循环同时枚举两个数组。 【参考方案1】:另一种方法是使用zip
函数,您可以在操场上尝试:
let a = ["a","b","c","b"]
let b = [1,2,3,4]
let list = zip(a, b).map $0 + " \($1)"
list // -> ["a 1", "b 2", "c 3", "b 4"]
我正在压缩两个数组,它返回一个序列,然后使用reduce
方法将(String, Int)
元组的序列转换为字符串数组。
【讨论】:
let list = zip(a, b).map "\($0) \($1)"
不错,不知道我怎么错过了@vacawama,但感谢您指出。【参考方案2】:
以下是连接两个数组的方法:
let a = ["a","b","c","b"]
let b = [1,2,3,4]
let d = a.enumerated().map (index,string) -> String in
guard b.count > index else return ""
return "\(b[index]) \(string)"
// d = ["1 a", "2 b", "3 c", "4 b"]
【讨论】:
如果字符串数组有欺骗,这仍然有效吗?频繁使用 indexOf 会导致性能问题吗? 好点@conarch,骗子是个问题,很快就会解决。关于indexOf
,我认为你需要检查真实数据,否则感觉就像过早的优化。
@conarch 我编辑了我的答案,你怎么看?与骗子一起工作,不使用indexOf
好@njuri!我很高兴看到这个问题,因为我学到了一些新东西。 :-)以上是关于将数组 int 附加到字符串数组的主要内容,如果未能解决你的问题,请参考以下文章
Java - 将引号附加到数组中的字符串并连接数组中的字符串
快速多部分/表单数据上传,将字符串数组附加到正文(问题:数组作为字符串到服务器)