Подтвердить что ты не робот

Как вводить данные от пользователя в Scala?

Я хочу взять данные от пользователя. Не могли бы вы рассказать мне, как запрашивать ввод пользователя в виде строки в Scala?

4b9b3361

Ответ 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

попробуйте этот метод