将数组 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 - 将引号附加到数组中的字符串并连接数组中的字符串

将字符串附加到 Matlab 数组

快速多部分/表单数据上传,将字符串数组附加到正文(问题:数组作为字符串到服务器)

你能用 swift 将字符串附加到 Firebase 数组吗

如何将部分字符数组附加到字符串?

如何将字符串数组附加到共享内存? C