2012-10-07 4 views
8

यहाँ मेरी कोड है:स्काला, कैसे में एक पंक्ति में एक पूर्णांक की तुलना में अधिक पढ़ सकते हैं और उन्हें एक चर प्रत्येक में पाने के लिए?

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 पूर्णांक के लिए एक स्ट्रिंग के रूप में विचार किया जाएगा। मैं उस स्ट्रिंग को कैसे पढ़ सकता हूं और 3 अलग-अलग चरों में 3 मान प्राप्त कर सकता हूं?

उत्तर

22

आप नीचे दिए गए कोड है जो एक पंक्ति पढ़ सकते हैं और इनपुट के रूप में पहले 3 व्हाइटस्पेस से अलग टोकन का उपयोग होगा इस्तेमाल कर सकते हैं। (उदाहरण के लिए अपेक्षित हैं "1 2 3" एक पंक्ति में इनपुट के रूप में)

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

'वैल सरणी उपलब्ध है का समर्थन करता है (एम, एन, घ) = readLine.split (" ") .map (_। ToInt)' –

+0

@KimStebel अच्छा, अद्यतन इस सवाल का जवाब;) – xhochy

+1

एक और एक: 'वैल एक्स # :: y # :: z # :: बाकी = Stream.continually (readInt) .take (3)' – 4e6

0

आप स्केला कार्यक्रमों में Java.util.Scanner उपयोग कर सकते हैं। इस स्कैनर के कार्यों कि जावा में

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)); 
} 
} 
संबंधित मुद्दे

 संबंधित मुद्दे