我无法通过Scala
获取像字符串一样打印的数组 val a = Array("woot","yeah","ok then").sorted
for (i <- a.length-1 to 0 by -1)
println(s"$i: ${a(i)}")
val ab = ArrayBuffer(for (e <- a if e != null) yield e*3)
println(ab.mkString(" "))
出于某种原因,打印出来:
2: yeah
1: woot
0: ok then
ArrayBuffer([Ljava.lang.String;@5034c75a)
我希望它能打印"yeahyeahyeah wootwootwoot ok thenok thenok then"
,即数组中的项(作为字符串)用空格分隔。为什么它不起作用,我做错了什么?
编辑:好吧,它显示了因为我正在将ab
初始化为一个元素ArrayBuffer
,并将该数组作为元素而不是元素内部数组是数组缓冲区的独立元素。
答案 0 :(得分:0)
如果要打印数组的每个元素,连接三次,条目之间有空格,那么它只是:
df5 = pd.merge(df1,df2, on = ['col1','col2'])
#if 2 column DataFrame
#df5 = pd.merge(df1,df2)
print (df5)
col1 col2
0 cx 1
1 cx2 12
2 cx2 12
它给出了:
println((for (e <- a) yield e * 3).mkString(" "))
(这是正确的顺序,因为您希望按字母顺序排序,ok thenok thenok then wootwootwoot yeahyeahyeah
&lt; o
&lt; w
)
如果要在打印前反转数组,可以将其初始化为
y
答案 1 :(得分:0)
我认为你的意思是
val ab = ArrayBuffer((for (e <- a if e != null) yield e*3): _*)
答案 2 :(得分:0)
使用更多功能方法的一些较短的答案:
val a = Array("woot","yeah","ok then").sorted.reverse
a.map(_ * 3).map(elem => print(elem + " ")
编辑: 如果你想在某个新变量中得到一个结果,你可以这样做:
val string = a.map(_ * 3).mkString(" ")