Я хочу взять данные от пользователя. Не могли бы вы рассказать мне, как запрашивать ввод пользователя в виде строки в Scala?
Как вводить данные от пользователя в Scala?
Ответ 1
В Scala 2.11 используйте
scala.io.StdIn.readLine()
вместо устаревшего Console.readLine
.
Ответ 2
Из списка сопоставления Scala (форматирование и ссылки были обновлены):
Короткий ответ:
readInt
Длинный ответ:
Если вы хотите читать с терминала, посмотрите
Console.scala
. Вы можете использовать эти функции следующим образом:Console.readInt
Кроме того, для вашего удобства
Predef.scala
автоматически определяет некоторые ярлыки для функций вConsole
. Поскольку вещи вPredef
всегда и везде импортируются автоматически, вы можете использовать их следующим образом:readInt
Ответ 3
Ниже приведен стандартный способ считывания значений Integer
val a=scala.io.StdIn.readInt()
println("The value of a is "+ a)
аналогично
def readBoolean(): Boolean Считывает логическое значение из всей строки из stdin.
def readByte(): байт Считывает значение байта из всей строки из stdin.
def readChar(): Char Считывает значение Char из всей строки из stdin.
def readDouble(): Двойной Считывает двойное значение из всей строки из stdin.
def readFloat(): Float Считывает значение Float из всей строки из stdin.
def readInt(): Int Считывает значение Int из всей строки из stdin.
def readLine (текст: String, args: Any *): String Распечатывает форматированный текст в stdout и читает полную строку из stdin.
def readLine(): String Читает полную строку из stdin.
def readLong(): Длинные Читает длинное значение из всей строки из stdin.
def readShort(): короткий Читает короткое значение из всей строки из stdin.
def readf (format: String): List [Any] Считывает структурированный ввод из stdin, как указано спецификатором формата.
def readf1 (format: String): Любой Читает в структурированном вводе из stdin, как указано спецификатором формата, возвращая только первое значение, извлеченное, в соответствии со спецификацией формата.
def readf2 (format: String): (Любой, Любой) Читает в структурированном вводе из stdin, как указано спецификатором формата, возвращая только первые два значения извлекаются в соответствии со спецификацией формата.
def readf3 (format: String): (Любой, Любой, Любой) Читает в структурированном вводе из 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 Поваренная книга: рецепты для объектно-ориентированного и функционального программирования Элвина Александра
Ответ 4
object InputTest extends App{
println("Type something : ")
val input = scala.io.StdIn.readLine()
println("Did you type this ? " + input)
}
Таким образом вы можете запросить ввод.
scala.io.StdIn.readLine()
Ответ 5
Смотрите Console на Scaladoc.
Ответ 6
Простой пример для чтения ввода от пользователя
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
readLine позволяет запрашивать пользователя и читать его ввод в виде строки
val name = readLine("What your name? ")
Ответ 8
В Spark 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
Ответ 9
Вы можете получить пользовательский ввод String, используя readLine().
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)
}
}
Ответ 10
попробуйте
scala > readint
попробуйте этот метод