Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

scala save to array with format

Tags:

scala

I have two vals:

// 0~250::250~500::500~750::750~1000
val step_x_ranges = stepsAsString.mkString("::")

// 1::22::7::16
val step_y = histogram_final.map{case (x , y) => y}.mkString("::")

And I want to save it to an Array like:

0~250::1
250~500::22
500~750::7
750::1000::16

But still not try out: Please help me

Here is my wrong code:

var toArray : Array[String] = Array()
   for (i <- 0 to 3)
   {
     val ArrayRow = step_x_ranges(i) + "::" + step_y(i)
     toArray = toArray :+ ArrayRow
   }
   println(toArray(0)) 
   println(toArray(1))

Result:

0::4
~::8 
like image 464
user2492364 Avatar asked Aug 22 '26 11:08

user2492364


1 Answers

Use zip:

scala> val step_x_ranges = Array("0~250", "250~500", "500~750","750~1000")
step_x_ranges: Array[String] = Array(0~250, 250~500, 500~750, 750~1000)

scala> val step_y = Array(1, 22, 7, 16)
step_y: Array[Int] = Array(1, 22, 7, 16)

scala> val result = step_x_ranges.zip(step_y).map{case (x, y) => s"$x::$y"}
res1: Array[String] = Array(0~250::1, 250~500::22, 500~750::7, 750~1000::16)
scala> scala.tools.nsc.io.File("test.txt").writeAll(result.mkString("\n"))

And test.txt:

0~250::1
250~500::22
500~750::7
750~1000::16
like image 73
Nikita Avatar answered Aug 24 '26 02:08

Nikita



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!