2012-10-07 43 views
8

這裏是我的代碼: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個值?

回答

22

您可以使用以下代碼來讀取一行並使用前三個空格分隔標記作爲輸入。 (期望例如「1 2 3」作爲一行上的輸入)

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

'VAL陣列(M,N,d)= readLine.split(」「).MAP(_。toInt)' –

+0

@KimStebel好看,更新答案;) – xhochy

+1

另一個:'val x#:: y#:: z#:: rest = Stream.continually(readInt).take(3)' – 4e6

0

你可以在scala程序中使用Java.util.Scanner。 這支持掃描儀的功能可用在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)); 
} 
} 
相關問題