Während des Entwicklungsprozesses von Java-Programmen ist es üblich, Eingabewerte über die Tastatur abzurufen, aber Java stellt uns nicht scanf() wie C zur Verfügung Die bereitgestellte Funktion cin() ist eine vorgefertigte Funktion zum Abrufen des Tastatureingabewerts! Java bietet eine solche Funktion nicht, was nicht bedeutet, dass wir dieser Situation hilflos gegenüberstehen. (Empfohlen: Java-Video-Tutorial)
Bitte schauen Sie sich die folgenden drei Lösungen an:
Nachfolgend werden mehrere Methoden aufgeführt:
Methode Eins : Empfangen Sie ein Zeichen von der Konsole und drucken Sie es dann aus
import java.io.*; public static void main(String [] args) throws IOException{ System.out.print("Enter a Char:"); char i = (char) System.in.read(); System.out.println("your char is :"+i); }
Obwohl mit dieser Methode die Eingabezeichen von der Tastatur abgerufen werden, kann System.out.read() nur ein Zeichen gleichzeitig abrufen , der Typ der erhaltenen Variablen kann nur char sein. Wenn wir eine Zahl eingeben und hoffen, eine Ganzzahlvariable zu erhalten, müssen wir den Variablentyp ändern, was problematischer ist.
Methode 2: Empfangen Sie einen String von der Konsole und drucken Sie ihn aus. In dieser Frage müssen wir die BufferedReader-Klasse und die InputStreamReader-Klasse
import java.io.*; public static void main(String [] args) throws IOException{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str = null; System.out.println("Enter your value:"); str = br.readLine(); System.out.println("your value is :"+str); }
verwenden, damit wir die von uns eingegebene Zeichenfolge erhalten können.
Methode 3: Ich denke, diese Methode ist die einfachste und leistungsfähigste, nämlich die Verwendung der Scanner-Klasse
import java.util.Scanner; public static void main(String [] args) { Scanner sc = new Scanner(System.in); System.out.println("请输入你的姓名:"); String name = sc.nextLine(); System.out.println("请输入你的年龄:"); int age = sc.nextInt(); System.out.println("请输入你的工资:"); float salary = sc.nextFloat(); System.out.println("你的信息如下:"); System.out.println("姓名:"+name+"\n"+"年龄:"+age+"\n"+"工资:"+salary); }
Dieser Code hat gezeigt, dass die Scanner-Klasse für Zeichenfolgen oder ganze Zahlen und Variablen von Daten gedacht ist oder Float-Typ kann mit nur wenigen kleinen Änderungen funktionieren! Zweifellos ist er der Mächtigste!
Eines müssen Sie jedoch beachten, wenn Sie die dritte Eingabemethode verwenden, nämlich die Funktion nextLine(). Es gibt eine Funktion mit derselben Funktion wie seine Funktion next() im io Ihre Funktionen sind die gleichen, aber was sind die Unterschiede in der Implementierung? Führt zuerst nextInit( ) und dann nextLine() aus, und das Beispiel der dritten Methode besteht darin, zuerst nextLine() und dann nextInit() auszuführen. Wenn Sie die beiden Codeteile ausführen, werden Sie feststellen, dass das Beispiel Mit der dritten Methode kann die normale Eingabe erfolgen, aber dieser Code gibt die Eingabetaste ein. Nach dem Drücken der Eingabetaste wird die Eingabe des Namens übersprungen und direkt zur Eingabe des Gehalts übergegangen (Sie können den Code selbst ausführen, um zu sehen). Warum ist das so?
Tatsächlich wird das Wagenrücklaufzeichen nach dem Ausführen der Funktion nextInit() und dem Drücken der Eingabetaste von der Funktion nextLine() übernommen. Tatsächlich wird die Funktion nextLine() ausgeführt, um die Eingabe zu übernehmen Wagenrücklaufzeichen (dies bedeutet nicht, dass die Funktion next() nicht ausgeführt wird). Der Unterschied zwischen ihnen besteht darin, dass die Funktion next() nicht ausgeführt wird das Wagenrücklaufzeichen, die Tabulatortaste oder die Leertaste usw. Wenn Sie also die Funktion nextLine() verwenden, beachten Sie, dass das von Ihnen getroffene Wagenrücklaufzeichen möglicherweise von ihr absorbiert wird, was zu einem FEHLER im Programm führt! ! !
Weitere Java-Kenntnisse finden Sie in der Spalte
Java Basic TutorialDas obige ist der detaillierte Inhalt vonWie bekomme ich Eingaben in Java?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!