Arrays 在Scala中读取数组中的输入行?
我通过Arrays 在Scala中读取数组中的输入行?,arrays,string,scala,Arrays,String,Scala,我通过readLine()从stdin读取了10行输入。如何将这10行读入字符串数组?您可以使用1到10创建一个从1到10的范围,然后映射到该范围,而不考虑实际数字,只读取行: (1 to 10).map(_ => readLine()).toArray 正如您在评论中提到的,仅通过对数组调用println无法轻松打印数组,但是Seqs支持它: scala> println(Array("a", "b", "c")) [Ljava.lang.String;@60b85ba1 sc
readLine()
从stdin
读取了10行输入。如何将这10行读入字符串数组?您可以使用1到10创建一个从1到10的范围,然后映射到该范围,而不考虑实际数字,只读取行:
(1 to 10).map(_ => readLine()).toArray
正如您在评论中提到的,仅通过对数组调用println
无法轻松打印数组,但是Seq
s支持它:
scala> println(Array("a", "b", "c"))
[Ljava.lang.String;@60b85ba1
scala> println(Seq("a", "b", "c"))
List(a, b, c)
您可以使用1到10
创建一个从1到10的范围,然后映射到该范围,而不考虑实际数字,只读取以下行:
(1 to 10).map(_ => readLine()).toArray
正如您在评论中提到的,仅通过对数组调用println
无法轻松打印数组,但是Seq
s支持它:
scala> println(Array("a", "b", "c"))
[Ljava.lang.String;@60b85ba1
scala> println(Seq("a", "b", "c"))
List(a, b, c)
更直接的方法是:
Array.fill(10){readLine()}
更直接的方法是:
Array.fill(10){readLine()}
实际上我已经试过了,当我打印它时,出于某种原因,它给了我一大堆胡言乱语:[Ljava.lang。String@bunch因为Array
只是一个Java数组,这意味着toString
方法是一个默认方法,并打印type+hashCode。使用.toSeq
来获得Scala序列。用示例更新了我的答案。要打印数组,请尝试:a.mkString(“,”)
实际上我已经试过了,当我打印它时,出于某种原因,它给了我一大堆胡言乱语:[Ljava.lang。String@bunch因为Array
只是一个Java数组,这意味着toString
方法是一个默认方法,并打印type+hashCode。使用.toSeq
来获得Scala序列。用示例更新我的答案。要打印数组,请尝试:a.mkString(“,”