我有一个数组
[1,2,2,3,4,6,2,4,6,8,2,3,5]
我想使用for循环遍历这个数组,以获得相邻元素的元组的集合。我应该如何在Scala中编码?
预期输出:
1-2|2-2|2-3|3-4|4-6|6-2|2-4|4-6|6-8|8-2|2-3|3-5
发布于 2018-01-30 17:35:36
如果你想要像你在评论中提到的1-2|2-2|2-3|3-4|........
这样的输出,你可以尝试如下所示:
val arr = Array(1,2,2,3,4,6,2,4,6,8,2,3,5)
//here first separate array elements by - then whole array by |
val str = arr.sliding(2).map(_.mkString("-")).mkString("|")
print(str)
//output
//1-2|2-2|2-3|3-4|4-6|6-2|2-4|4-6|6-8|8-2|2-3|3-5
发布于 2018-01-30 17:19:06
在scala中,你可以使用sliding
函数来实现这个功能。
scala> val arr = Array(1,2,2,3,4,6,2,4,6,8,2,3,5)
arr: Array[Int] = Array(1, 2, 2, 3, 4, 6, 2, 4, 6, 8, 2, 3, 5)
scala> arr.sliding(2).foreach(tuple => println(tuple.mkString(" ")))
1 2
2 2
2 3
3 4
4 6
6 2
2 4
4 6
6 8
8 2
2 3
3 5
scala> arr.sliding(2).map(tuple => tuple.mkString("-")).mkString("|")
res10: String = 1-2|2-2|2-3|3-4|4-6|6-2|2-4|4-6|6-8|8-2|2-3|3-5
https://stackoverflow.com/questions/48517732
复制相似问题