Je veux prendre les commentaires de l'utilisateur. Pouvez-vous s'il vous plaît me dire comment demander à l'utilisateur d'entrer sous forme de chaîne dans Scala?
Dans Scala 2.11, utilisez
scala.io.StdIn.readLine()
au lieu du Console.readLine
obsolète.
À partir de Liste de vérification (le formatage et les liens ont été mis à jour):
Réponse courte:
readInt
Longue réponse:
Si vous voulez lire depuis le terminal, consultez
Console.scala
. Vous pouvez utiliser ces fonctions comme suit:Console.readInt
Aussi, pour votre commodité,
Predef.scala
définit automatiquement certains raccourcis vers les fonctions dansConsole
. Puisque les éléments dansPredef
sont toujours et partout importés automatiquement, vous peut les utiliser comme suit:readInt
Voici un moyen standard de lire les valeurs entières
val a=scala.io.StdIn.readInt()
println("The value of a is "+ a)
de même
def readBoolean (): Boolean Lit une valeur booléenne d'une ligne entière à partir de stdin.
def readByte (): Byte Lit une valeur d'octet d'une ligne entière à partir de stdin.
def readChar (): Char Lit une valeur Char d'une ligne entière à partir de stdin.
def readDouble (): Double Lit une valeur Double sur une ligne entière à partir de stdin.
def readFloat (): Float Lit une valeur Float d’une ligne entière à partir de stdin.
def readInt (): Int Lit une valeur Int d'une ligne entière à partir de stdin.
def readLine (text: String, args: Any *): String Imprime le texte mis en forme sur stdout et lit une ligne complète à partir de stdin.
def readLine (): String Lit une ligne complète à partir de stdin.
def readLong (): Long Lit une valeur Long depuis une ligne entière à partir de stdin.
def readShort (): Short Lit une valeur Short d'une ligne entière à partir de stdin.
def readf (format: String): Liste [Tous] Lit en entrée structurée à partir de stdin comme spécifié par le spécificateur de format.
def readf1 (format: String): Any Lit en entrée structurée à partir de stdin, comme spécifié par le spécificateur de format, en renvoyant seule la première valeur extraite, conformément à la spécification de format.
def readf2 (format: String): (Any, Any) Lit les entrées structurées à partir de stdin comme spécifié par le spécificateur de format, en retournant uniquement les deux premières valeurs extraites, conformément à la spécification de format.
def readf3 (format: String): (Any, Any, Any) Lit en entrée structurée à partir de stdin comme spécifié par le spécificateur de format, en retournant uniquement les trois premières valeurs extraites, conformément à la spécification de format.
De même, si vous voulez lire plusieurs entrées utilisateur à partir de la même ligne, ex: nom, âge, poids, vous pouvez utiliser l'objet 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
abrégé de Scala Cookbook: Recettes pour la programmation orientée objet et fonctionnelle par Alvin Alexander
object InputTest extends App{
println("Type something : ")
val input = scala.io.StdIn.readLine()
println("Did you type this ? " + input)
}
De cette façon, vous pouvez demander une entrée.
scala.io.StdIn.readLine()
Vous pouvez prendre une entrée de chaîne utilisateur en utilisant readLine ().
object q1 {
def main(args:Array[String]):Unit={
println("Enter your name : ")
val a = readLine()
println("My name is : "+a)
}
}
Ou vous pouvez utiliser la classe scanner pour prendre une entrée utilisateur.
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)
}
}
Exemple simple pour lire les entrées de l'utilisateur
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
Aussi, nous pouvons utiliser Read Line
val name = readLine("What is your name ")
What is your name name: String = Viraj
Dans 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
}
}
Ce code est saisi par l'utilisateur et généré:
[input] Enter the number of lines to read in: 2
one
two
[output] output.txt
one
two
readLine vous permet d'inviter l'utilisateur et de lire ses entrées sous forme de chaîne
val name = readLine("What's your name? ")