如何从用户在斯卡拉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
请尝试这种方法