Scala创建数组时候从键盘上输入
时间: 2023-11-12 09:09:16 浏览: 163
可以使用scala.io.StdIn.readLine()获取键盘输入,然后将输入的字符串转换为数组。具体代码如下:
```scala
import scala.io.StdIn
// 获取键盘输入
val inputStr = StdIn.readLine()
// 将输入的字符串转换为数组
val arr = inputStr.split(" ")
```
在这个例子中,我们使用空格作为分隔符来将输入的字符串拆分成数组。您也可以根据输入的格式来相应地调整分隔符。
相关问题
用scala通过键盘创建不等长的2维数组,每一维长度从键盘输入,将输入数据按照降序排列,输出一维数组的所有元素
在Scala中,你可以使用`Array`类和`readLine`函数从用户那里获取输入,并结合`sortWith`方法对二维数组进行排序。这里是一个简单的示例:
```scala
import scala.io.StdIn.readLine
// 获取用户输入,生成二维数组的维度
val rows = readLine("请输入二维数组的第一维长度: ").toInt
val cols = readLine("请输入二维数组的第二维长度: ").toInt
// 创建一个空的二维数组
var arr: Array[Array[Int]] = Array.fill(rows)(Array.fill(cols)(0))
// 循环读取每个元素并存储到二维数组中,假设输入都是整数
for (i <- 0 until rows) {
for (j <- 0 until cols) {
arr(i)(j) = readLine(s"请输入第$i行第$j列的元素: ").toInt // 读入整数并转换
}
}
// 对二维数组进行降序排序,注意这里我们按第一维降序,因为默认的sortWith比较的是第一个元素
arr.sortWith(_._1 > _._1)
// 输出排序后的二维数组的一维数组形式,即按行遍历
arr.foreach(row => println(row.mkString(",")))
Scala语言通过键盘创建不等长的2维数组,每一维长度从键盘输入,将输入数据按照降序排列,输出二维数组的所有元素。
在Scala中,你可以使用`Array.ofDim`函数结合`scala.io.StdIn.readLine`读取用户输入来创建不等长的二维数组,并使用`sortWith`方法对元素进行降序排序。以下是完成这个任务的一个简单示例:
```scala
import scala.io.StdIn
// 读取用户输入并创建二维数组
def createArray(): Array[Array[Int]] = {
val rows = readLine("请输入行数:").toInt
(0 until rows).map { _ =>
val cols = readLine(s"请输入第$(_ + 1)行的列数:").toInt
Array.fill(cols)(readLine(s"请输入第$(_ + 1), $cols个元素:").toInt).sorted(Ordering[Int].reverse)
}
}
// 输出二维数组的所有元素
def printArray(arr: Array[Array[Int]]) {
arr.foreach(row => println(row.mkString(", ")))
}
val myArray = createArray()
printArray(myArray)
阅读全文
相关推荐












