如何从Scala中的用户获取输入?

时间:2011-02-20 05:05:43

标签: scala

我想从用户那里获取输入。你能告诉我如何在Scala中以字符串形式请求用户输入吗?

10 个答案:

答案 0 :(得分:99)

在Scala 2.11中使用

scala.io.StdIn.readLine()

而不是已弃用的Console.readLine

答案 1 :(得分:17)

来自Scala maling list(格式和链接已更新):

  

简短回答:

readInt
     

答案很长:

     

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

Console.readInt
     

另外,为方便起见,Predef.scala   自动定义Console中函数的一些快捷方式。以来   Predef中的内容随时随地自动导入   可以这样使用它们:

readInt

答案 2 :(得分:11)

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

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

类似地

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

def readByte():字节 从stdin中读取整行的字节值。

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 将格式化文本打印到stdout并从标准输入读取整行。

def readLine():String 从stdin读取一整行。

def readLong():很长 从stdin读取整行中的Long值。

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

def readf(格式:字符串):列出[任意] 从格式说明符指定的stdin读取结构化输入。

def readf1(格式:字符串):任意 从格式说明符指定的stdin读取结构化输入,返回 根据格式规范,只提取第一个值。

def readf2(格式:字符串):(任意,任意) 从格式说明符指定的stdin读取结构化输入,返回 根据格式规范,只提取前两个值。

def readf3(格式:字符串):( Any,Any,Any) 从格式说明符指定的stdin读取结构化输入,返回 根据格式规范,只提取前三个值。

同样,如果你想从同一行ex:name,age,weight读取多个用户输入,你可以使用Scanner对象

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的面向对象和功能编程配方

答案 3 :(得分:8)

object InputTest extends App{

    println("Type something : ")
    val input = scala.io.StdIn.readLine()
    println("Did you type this ? " + input)

}

这样你可以询问输入。

scala.io.StdIn.readLine()

答案 4 :(得分:1)

66 67 83 7d fc 02

答案 5 :(得分:0)

readLine允许您提示用户并将其输入作为String

读取
val name = readLine("What's your name? ")

答案 6 :(得分:0)

从用户读取输入的简单示例

val scanner = new java.util.Scanner(System.in)

scala> println("What is your name") What is your name

scala> val name = scanner.nextLine()
name: String = VIRAJ

scala> println(s"My Name is $name")
My Name is VIRAJ

我们也可以使用Read Line

val name = readLine("What is your name ")
What is your name name: String = Viraj

答案 7 :(得分:0)

火花2

import java.io._
object Test {
    // Read user input, output
    def main(args: Array[String]) {

        // create a file writer
        var writer = new PrintWriter(new File("output.txt"))

       // read an int from standard input
       print("Enter the number of lines to read in: ")
       val x: Int = scala.io.StdIn.readLine.toInt

       // read in x number of lines from standard input
       var i=0
       while (i < x) {
           var str: String = scala.io.StdIn.readLine
           writer.write(str + "\n")
           i = i + 1
       }

       // close the writer
       writer.close
     }
}

此代码从用户处获取输入并输出:

[input] Enter the number of lines to read in: 2
one
two

[output] output.txt
one
two

答案 8 :(得分:0)

您可以使用readLine()获取用户String输入。

object q1 {
  def main(args:Array[String]):Unit={  
    println("Enter your name : ")
    val a = readLine()
    println("My name is : "+a)
  }
}

或者您可以使用扫描仪类接受用户输入。

import java.util.Scanner;

object q1 {
  def main(args:Array[String]):Unit={ 
      val scanner = new Scanner(System.in)
    println("Enter your name : ")
    val a = scanner.nextLine()
    println("My name is : "+a)
  }
}

答案 9 :(得分:-4)

请尝试

阶&GT;的readInt

请尝试此方法