Ich möchte Eingaben vom Benutzer entgegennehmen. Können Sie mir bitte sagen, wie ich in Scala nach Benutzereingaben als Zeichenfolge fragen soll?
Ich möchte Eingaben vom Benutzer entgegennehmen. Können Sie mir bitte sagen, wie ich in Scala nach Benutzereingaben als Zeichenfolge fragen soll?
Antworten:
Aus der Scala-Maling-Liste (Formatierung und Links wurden aktualisiert):
Kurze Antwort:
readInt
Lange Antwort:
Wenn Sie vom Terminal lesen möchten, checken Sie aus
Console.scala
. Sie können diese Funktionen wie folgt verwenden:
Console.readInt
Definiert außerdem
Predef.scala
automatisch einige Verknüpfungen zu Funktionen inConsole
. Da InhaltePredef
immer und überall automatisch importiert werden, können Sie sie folgendermaßen verwenden:readInt
Hier ist eine Standardmethode zum Lesen von Integer-Werten
val a=scala.io.StdIn.readInt()
println("The value of a is "+ a)
ähnlich
def readBoolean (): Boolean Liest einen Booleschen Wert aus einer ganzen Zeile von stdin.
def readByte (): Byte Liest einen Bytewert aus einer ganzen Zeile von stdin.
def readChar (): Char Liest einen Char-Wert aus einer ganzen Zeile von stdin.
def readDouble (): Double Liest einen Double-Wert aus einer ganzen Zeile von stdin.
def readFloat (): Float Liest einen Float-Wert aus einer ganzen Zeile von stdin.
def readInt (): Int Liest einen Int-Wert aus einer ganzen Zeile von stdin.
def readLine (Text: String, Argumente: Beliebig *): String Druckt formatierten Text nach stdout und liest eine vollständige Zeile aus stdin.
def readLine (): String Liest eine vollständige Zeile von stdin.
def readLong (): Long Liest einen Long-Wert aus einer ganzen Zeile von stdin.
def readShort (): Short Liest einen Short-Wert aus einer ganzen Zeile von stdin.
def readf (Format: String): List [Any] Liest strukturierte Eingaben von stdin ein, wie vom Formatbezeichner angegeben.
def readf1 (format: String): Beliebig Liest strukturierte Eingaben von stdin ein, wie vom Formatbezeichner angegeben, und gibt nur den ersten extrahierten Wert gemäß der Formatspezifikation zurück.
def readf2 (format: String): (Any, Any) Liest strukturierte Eingaben von stdin ein, wie vom Formatbezeichner angegeben, und gibt nur die ersten beiden extrahierten Werte gemäß der Formatspezifikation zurück.
def readf3 (format: String): (Any, Any, Any) Liest strukturierte Eingaben von stdin ein, wie vom Formatbezeichner angegeben, und gibt nur die ersten drei extrahierten Werte gemäß der Formatspezifikation zurück.
Wenn Sie mehrere Benutzereingaben aus derselben Zeile lesen möchten, z. B. Name, Alter, Gewicht, können Sie das Scannerobjekt verwenden
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
Auszug aus dem Scala-Kochbuch: Rezepte für objektorientierte und funktionale Programmierung von Alvin Alexander
Sie können eine Benutzereingabe mit readLine () eingeben.
import scala.io.StdIn._
object q1 {
def main(args:Array[String]):Unit={
println("Enter your name : ")
val a = readLine()
println("My name is : "+a)
}
}
Oder Sie können die Scannerklasse verwenden, um Benutzereingaben zu übernehmen.
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)
}
}
Mit readLine können Sie den Benutzer auffordern und seine Eingabe als Zeichenfolge lesen
val name = readLine("What's your name? ")
Einfaches Beispiel zum Lesen von Benutzereingaben
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
Wir können auch Read Line verwenden
val name = readLine("What is your name ")
What is your name name: String = Viraj
In Scala 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
}
}
Dieser Code wird vom Benutzer eingegeben und ausgegeben:
[input] Enter the number of lines to read in: 2
one
two
[output] output.txt
one
two
bitte versuche
scala> readint
Bitte versuchen Sie diese Methode
val input = readLine("prompt> ")