Scala,как прочитать более одного целого числа в одной строке и получить их в одной переменной?

вот мой код:

object theater extends App {

    val m = readInt
    val n = readInt
    val a = readInt

    val c1 = m/a + (if(m%a == 0) 0 else 1)
    val c2 = n/a + (if(n%a == 0) 0 else 1)
    print(c1 + c2)
}

но формат ввода: 3 целых числа в одной строке. Но для 3 целых чисел в одной строке scala будет рассматривать это как строку. Как я могу прочитать эту строку и получить 3 значения в 3 разделенных переменных?

2 ответов


вы можете использовать следующий код, который будет читать строку и использовать первые 3 маркера, разделенные пробелами, в качестве входных данных. (Ожидает, например," 1 2 3 " в качестве ввода на одной строке)

val Array(m,n,d) = readLine.split(" ").map(_.toInt)

вы можете использовать Java.утиль.Сканер в программах scala. Это поддерживает функции сканера, который доступен в Java

import java.util.Scanner;
object Addition{
 def main(args: Array[String]){
  var scanner = new Scanner(System.in); //defining scanner object
  println("Enter two numbers : ");
  var a = scanner.nextInt();            //reading space separated input
  var b = scanner.nextInt();
  println("The result is : "+(a+b));
 }
}