如何从用户在斯卡拉input?

我想从用户那里获得input。 你能告诉我如何要求在斯卡拉string用户input?

在Scala 2.11中使用

 scala.io.StdIn.readLine() 

而不是已弃用的Console.readLine

从Scala maling列表 (格式和链接已更新):

简短的回答:

 readInt 

很长的回答:

如果你想从terminal读取,请查看Console.scala 。 你可以像这样使用这些函数:

 Console.readInt 

此外,为了您的方便, Predef.scala自动定义了Console某些function的快捷方式。 由于Predef东西总是自动导入,所以可以像这样使用它们:

 readInt 
 object InputTest extends App{ println("Type something : ") val input = scala.io.StdIn.readLine() println("Did you type this ? " + input) } 

这样你可以要求input。

 scala.io.StdIn.readLine() 

请参阅Scaladoc上的控制台 。

这是一个读取整数值的标准方法

 val a=scala.io.StdIn.readInt() println("The value of a is "+ a) 

同样

def readBoolean():Boolean从stdin的整行读取一个布尔值。

def readByte():Byte从stdin的整行读取一个Byte值。

def readChar():Char从stdin的整行读取一个Char值。

def readDouble():Double从stdin的整行读取Double值。

def readFloat():Float从stdin的整行读取Float值。

def readInt():Int从stdin的整行读取一个Int值。

def readLine(text:String,args:Any *):String将带格式的文本打印到标准输出,并从标准input读完整行。

def readLine():String从标准input读取完整的一行。

def readLong():Long从标准input的整行中读取一个Long值。

def readShort():Short从stdin的整行中读取Short值。

def readf(format:String):List [Any]从格式说明符指定的标准input读取结构化input。

def readf1(format:String):Any根据格式说明符指定,从标准input读取结构化input,仅返回提取的第一个值。

def readf2(format:String):(Any,Any)根据格式指定符从格式说明符指定的stdin中读取结构化input,仅返回前两个提取的值。

def readf3(format:String):(Any,Any,Any)从格式说明符指定的stdin结构化input中读取,根据格式规范仅返回前三个提取的值。

同样,如果您想从同一行读取多个用户input,例如名称,年龄,体重,则可以使用扫描仪对象

 import java.util.Scanner // simulated input val input = "Joe 33 200.0" val line = new Scanner(input) val name = line.next val age = line.nextInt val weight = line.nextDouble 

摘自Scala Cookbook:面向对象和函数式编程的食谱Alvin Alexander

请尝试

scala> readint

请尝试这种方法