我想从用户那里获取输入。你能告诉我如何在Scala中以字符串形式请求用户输入吗?
答案 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
请尝试此方法