Heim > Java > javaLernprogramm > Hauptteil

Detaillierte Erläuterung der Implementierung von Eingabedaten in Java

黄舟
Freigeben: 2017-08-13 09:46:51
Original
1219 Leute haben es durchsucht

Im Prozess der Java-Programmentwicklung ist es üblich, Eingabewerte über die Tastatur abzurufen, aber Java stellt uns nicht scanf() wie die C-Sprache oder cin() von C++ zur Verfügung um Tastatureingabewerte zu erhalten. Java bietet eine solche Funktion nicht, was nicht bedeutet, dass wir in dieser Situation hilflos sind. Schauen Sie sich bitte die folgenden drei Lösungen an:

Mehrere Methoden sind unten aufgeführt:

Methode 1: Empfangen Sie ein Zeichen von der Konsole und drucken Sie es 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); 
}
Nach dem Login kopieren

Obwohl diese Methode die Eingabezeichen von der Tastatur abruft, kann System.out.read() nur ein Zeichen gleichzeitig abrufen , der Typ der eingehenden 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: Einen String von der Konsole empfangen und ausdrucken. 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); 
}
Nach dem Login kopieren

verwenden, damit wir die von uns eingegebene Zeichenfolge erhalten können.

Methode drei: 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); 
}
Nach dem Login kopieren

Dieser Code hat gezeigt, dass die Scanner-Klasse Unabhängig davon, ob es sich um eine Variable vom Typ String, Integer-Daten oder Float handelt, müssen Sie nur eine kleine Änderung vornehmen, um die Funktion zu erreichen! 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 next in Die Funktionen des io-Pakets () sind die gleichen, aber was sind die Unterschiede in der Implementierung?

public static void main(String [] args) { 
         Scanner sc = new Scanner(System.in); 
         System.out.println("请输入你的年龄:"); 
         int age = sc.nextInt(); 
         System.out.println("请输入你的姓名:"); 
         String name = sc.nextLine(); 
         System.out.println("请输入你的工资:"); 
         float salary = sc.nextFloat(); 
         System.out.println("你的信息如下:"); 
         System.out.println("姓名:"+name+"\n"+"年龄:"+age+"\n"+"工资:"+salary); 
}
Nach dem Login kopieren

Der Unterschied zwischen diesem Code und dem oben angegebenen Beispielcode Die dritte Implementierungseingabemethode besteht darin, dass dieser Code zuerst nextInit() und dann nextLine() ausführt. Ein Beispiel für die dritte Methode besteht darin, zuerst nextLine() und dann nextInit() auszuführen, wenn Sie die beiden Teile ausführen Sie werden feststellen, dass das dritte Beispiel dieser Methode eine normale Eingabe erreichen kann, aber dieser Code überspringt die Eingabe des Namens nach dem Drücken der Eingabetaste bei der Eingabe des Alters und geht direkt zur Eingabe des Gehalts über (Sie können den Code ausführen selbst zu sehen) Warum ist das so? Tatsächlich wird nach dem Ausführen der Funktion nextInit() und dem Drücken der Eingabetaste das Wagenrücklaufzeichen von der Funktion nextLine() übernommen. Tatsächlich wird die Funktion nextLine() ausgeführt, um das eingegebene Wagenrücklaufzeichen zu absorbieren (dies ist der Fall). bedeutet nicht, dass sie nicht ausgeführt wird. Ich habe die Funktion next() erwähnt, die dieselbe Funktion wie nextLine() hat. Der Unterschied zwischen ihnen besteht darin, dass die Funktion next() keine Wagenrücklaufzeichen, Tabulatoren usw. empfängt Leertasten usw., also verwenden Sie die Funktion nextLine(). Beachten Sie beim Tippen, dass das von Ihnen gedrückte Wagenrücklaufzeichen möglicherweise absorbiert wird, was zu einem FEHLER im Programm führt! ! !

Lassen Sie uns abschließend kurz den Unterschied zwischen next() und nextLine() zusammenfassen:

In Java akzeptiert die next()-Methode keine Leerzeichen. Vor dem Empfang gültiger Daten werden alle Eingaben wie z Leerzeichen oder Tabulatortasten werden ignoriert. Wenn gültige Daten vorhanden sind, werden diese Tasten erkannt und beendet. nextLine() kann Leerzeichen oder Tabulatortasten akzeptieren und seine Eingabe sollte mit der Eingabetaste enden.

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Implementierung von Eingabedaten in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage