So verwenden Sie Scanner in Java

So verwenden Sie Scanner in Java
Der Scanner in Java ist eine Klasse in Java.Util -Paket. Diese Klasse zielt darauf ab, Eingaben aus einer String-, Tastatur-, Datei- oder Netzwerk -Socket zu lesen. Dieser Artikel konzentriert sich nur auf das Leseeingang von der Tastatur und das Anzeigen des Ergebnisses im Terminalfenster. Ähnliche Ideen können verwendet werden, um Eingaben aus der Datei oder dem Netzwerkkanal zu lesen. Der Scanner druckt nicht zum Terminalfenster. Verwenden Sie das System zum Drucken zum Terminal.Out Objekt. Es ist einfach, dieses Objekt zum Drucken zum Terminal zu verwenden, wie unten dargestellt.

Um die Scannerklasse zu verwenden, muss sie zuerst importiert werden. Danach muss ein Objekt daraus instanziiert werden. Nach der Verwendung des Scannerobjekts muss es geschlossen werden. Das Eingabestream -Objekt, das die Tastatur darstellt.In. Der Scanner hat viele Methoden. In diesem Artikel werden nur die häufig verwendeten erklärt.

Artikelinhalt

  • Einfache Verwendung der Scannerklasse
  • Spucken Sie die Eingangsleitung in Werte aus
  • Lesen und Validieren von primitiven Datentypen
  • Zuweisen eines Eingabestyps zu einer Variablen
  • Abschluss

Einfache Verwendung der Scannerklasse

Der folgende Code fordert den Benutzer auf, einen Satz einzugeben, und dann wird der Satz angezeigt:

Java importieren.Util.Scanner;
öffentliche Klasse Theclass
public static void main (String [] args)
Scanner scanobj = neuer Scanner (System.In);
System.aus.println ("Geben Sie einen Satz ein und drücken Sie Eingabetaste:");
String Sätze = Scanobj.nächste Zeile();
System.aus.println (Satz);
Scanobj.schließen();

Die erste Zeile importiert die Scannerklasse. In der Hauptfunktion erstellt die erste Zeile ein Scannerobjekt mit dem „System“.in ”Objekt für die Tastatur. Sobald das Scannerobjekt erstellt wird, wartet es auf die Eingabe. Die nächste Zeile druckt eine Anweisung und fordert den Benutzer auf, einen Satz einzugeben. Die folgende Zeile im Code verwendet die methodische Methode des Scanners, um den Satz des Benutzers zu lesen, nachdem er die Eingabetaste gedrückt hat. Die Zeile nach dem Code druckt den Satz im Terminalfenster nach. Die letzte Zeile schließt das Scannerobjekt.

Spucken Sie die Eingangsleitung in Werte aus

Der folgende Code spaltet die Eingabestelle in Wörter (Token) unter Verwendung des Raums als Grenzwert:

Java importieren.Util.Scanner;
öffentliche Klasse Theclass
public static void main (String [] args)
Scanner scanobj = neuer Scanner (System.In);
System.aus.println ("Geben Sie eine Token -Zeile ein und drücken Sie die Eingabetaste:");
while (scanobj.HasNext ())
System.aus.println (scanobj.nächste());

Scanobj.schließen();

HasNext () und Next () sind zwei weitere Methoden des Scannerobjekts. Wenn das Scannerobjekt eine Zeile liest, behält es sie bei. Weiter () greift auf das nächste Token (Wort) zu. HasNext () kehrt true zurück, wenn noch ein anderes Token noch nicht zugegriffen wird.

Leider wird der Benutzer nach wie vor, dass die Eingabe für die Aufteilung und das erneute Displieren mit diesem Code eingeben wird. Um all das zu beenden, drücken Sie Strg+z und Sie sollten wieder an der Eingabeaufforderung sein.

Im obigen Code trennt der Trennzeichen Token im Raum. Ein weiterer Charakter kann verwendet werden. Der folgende Code verwendet das Komma. Vergessen Sie nicht, Strg+Z zu drücken, um die Schleife zu beenden, wenn Sie den Code testen.

Java importieren.Util.Scanner;
öffentliche Klasse Theclass
public static void main (String [] args)
Scanner scanobj = neuer Scanner (System.In);
System.aus.println ("Geben Sie eine Token -Zeile ein und drücken Sie die Eingabetaste:");
Scanobj.gebrauchtelimiter (",");
while (scanobj.HasNext ())
System.aus.println (scanobj.nächste());

Scanobj.schließen();

Wenn Sie den Code getestet hätten, hätten Sie bemerkt, dass Räume in Token als Teil von Tokens (Ausgabe) aufgenommen wurden (Ausgabe). Der Ausdruck Scanobj.Uselimiter (","); tippt nach der Eingangslinie gelesen; Es ist das, was Komma, den Trennzeichen macht.

Lesen und Validieren von primitiven Datentypen

NEXTBOOLEAN () Methode

Im folgenden Code wird erwartet, dass der Benutzer ohne die Zitate entweder "true" oder "false" eingibt und dann die Eingabetaste drücken, wenn der Benutzer etwas anderes eingibt, z. B. "Ja" oder "Nein", eine Fehlermeldung ist angezeigt.

Java importieren.Util.Scanner;
öffentliche Klasse Theclass
public static void main (String [] args)
System.aus.drucken ("sind Sie über 24? ");
Scanner scanobj = neuer Scanner (System.In);
boolean BL = Scanobj.NextBoolean ();
if (bl == true)
System.aus.println ("Sie sind über 24");

else wenn (bl == false)
System.aus.println ("Sie sind unter 24");

Scanobj.schließen();

Da Java eine Fehlermeldung ausgibt, solange die Eingabe nicht genau richtig oder falsch ist, wurde das „else wenn“ anstelle von „sonst“ verwendet.

Der Unterschied zwischen den Methoden, Print und Println, besteht darin, dass der Druck die Eingabe in der aktuellen Zeile erwartet, während Println die Eingabe in der nächsten Zeile erwartet.

NextByte () Methode

Mit dem ASCII -Zeichen ist ein Zeichen ein Byte. Bei einigen östlichen Zeichensätzen kann ein Charakter jedoch aus mehr als einem Byte bestehen. Unabhängig vom Charaktersatz liest und validiert die nächste Byte -Methode das nächste Byte der Eingabe. Der folgende Code kann für diesen Zweck verwendet werden:

Java importieren.Util.Scanner;
öffentliche Klasse Theclass
public static void main (String [] args)
System.aus.print ("Typ Nummer < 128, press Enter: ");
Scanner scanobj = neuer Scanner (System.In);
Byte bt = scanobj.NextByte ();
System.aus.println (bt);
Scanobj.schließen();

Wenn eine Zahl von mehr als 127 oder ein Alphabet -Zeichen für diesen Code eingegeben wird, würde eine Fehlermeldung veröffentlicht.

NextInt () Methode

Das nächste Ganzzahl -Token als Eingabe kann ebenfalls validiert und akzeptiert werden. Der folgende Code kann verwendet werden:

Java importieren.Util.Scanner;
öffentliche Klasse Theclass
public static void main (String [] args)
System.aus.print ("Geben Sie eine Ganzzahl ein:");
Scanner scanobj = neuer Scanner (System.In);
int num = scanobj.NextInt ();
System.aus.println (num);
Scanobj.schließen();

Führende oder nachfolgende Räume wurden entfernt. Für diesen Code würde jeder ganzzahlige Wert, einschließlich Werte von mehr als 127, akzeptiert. Mit diesen NextXXX () -Methoden wird nach Ausfall der Validierung eine Fehlermeldung veröffentlicht.

NextBigInteger () Methode

Es scheint, dass Software -Ingenieure nie aufhören werden, neue Dinge zu finden. Eine große Ganzzahl ist eine Ganzzahl, deren Wert viel größer ist als die einer Ganzzahl. Mit Java kann es jedoch genauso gelesen werden wie die Ganzzahl. Der folgende Code zeigt dies:

Java importieren.Util.Scanner;
Java importieren.Mathematik.Biginteger;
öffentliche Klasse Theclass
public static void main (String [] args)
System.aus.println ("Geben Sie jede Ganzzahl für Big Integer ein:");
Scanner scanobj = neuer Scanner (System.In);
Biginteger num = scanobj.NextBigInteger ();
System.aus.println (num);
Scanobj.schließen();

Beachten Sie die Import -Anweisung „Java importieren.Mathematik.Biginteger; ". Beachten Sie auch, dass der große Ganzzahl -Typ mit einem Großbuchstaben B und nicht mit einem Kleinbuchstaben B begonnen wird.

Nextfloat () Methode

Der nächste Float -Token als Eingabe kann ebenfalls validiert und akzeptiert werden. Der folgende Code kann verwendet werden:

Java importieren.Util.Scanner;
öffentliche Klasse Theclass
public static void main (String [] args)
System.aus.print ("ENE ENE Float:");
Scanner scanobj = neuer Scanner (System.In);
float num = scanobj.Nextfloat ();
System.aus.println (num);
Scanobj.schließen();

Ein Beispiel für eine Float -Nummer ist 23.456. Führende oder nachfolgende Räume wurden entfernt.

NextDouble ()

Das nächste Doppel -Token als Eingabe kann ebenfalls validiert und akzeptiert werden. Der folgende Code kann verwendet werden:

Java importieren.Util.Scanner;
öffentliche Klasse Theclass
public static void main (String [] args)
System.aus.print ("ein beliebiges doppelt eingeben:");
Scanner scanobj = neuer Scanner (System.In);
double num = scanobj.NextDouble ();
System.aus.println (num);
Scanobj.schließen();

Ein Beispiel für eine Doppelzahl ist 23.456. Eine doppelte Zahl unterscheidet sich von einem Float, da sie weniger Fehlerquote aufweist. Führende oder nachfolgende Räume wurden entfernt.

NEXTLINE () Methode

Die nächste Linie () -Methode gilt für eine Zeichenfolge. Wenn die Zeichenfolge nach der Eingabetaste die Eingabestation von der Tastatur ist, kann sie das neue Zeichen "\ n" haben. Der folgende Code kann verwendet werden:

Java importieren.Util.Scanner;
öffentliche Klasse Theclass
public static void main (String [] args)
System.aus.println ("Geben Sie eine Zeile mit \\ n:");
Scanner scanobj = neuer Scanner (System.In);
String str = scanobj.nächste Zeile();
System.aus.println (str);
Scanobj.schließen();

Beachten Sie, dass der Saitentyp mit dem Großbuchstaben und nicht mit dem Kleinbuchstaben begonnen wird.

In diesem Artikel wurden die Methoden "Nextline (), HasNext () und Next () zuvor verwendet. Der Scanner verfügt über andere Methoden und andere primitive Datenmethoden - siehe später.

Zuweisen der Eingabe an eine Variable

Die Eingabe kann einer Variablen zugewiesen werden, wie der folgende Code zeigt:

Java importieren.Util.Scanner;
öffentliche Klasse Theclass
public static void main (String [] args)
Scanner scanobj = neuer Scanner (System.In);
System.aus.print ("Name eingeben:");
String name = scanobj.nächste Zeile();
System.aus.print ("älter eingeben:");
int Alter = scanobj.NextInt ();
System.aus.print ("Gehalt eingeben:");
doppeltes Gehalt = Scanobj.NextDouble ();
System.aus.println ("Name:" + Name + ", Alter:" + Alter + ", Gehalt:" + Gehalt);
Scanobj.schließen();

Abschluss

Der Scanner in Java ist eine Klasse in Java.Util -Paket. Diese Klasse zielt darauf ab, Eingaben aus einer String-, Tastatur-, Datei- oder Netzwerk -Socket zu lesen. Dieser Artikel konzentrierte sich hauptsächlich auf das Leseeingang von der Tastatur und das Anzeigen des Ergebnisses im Terminalfenster. Ähnliche Ideen können verwendet werden, um Eingaben aus dem String-, Datei- oder Netzwerkkanal zu lesen.

Verwenden Sie die NextLine () -Methode, um die gesamte Zeile der Tastatureingabe zu lesen. Die Linie als Zeichenfolge kann mit den Methoden HasNext () und Next () in Token aufgeteilt werden. Der Standard -Trennzeichen für die Aufteilung ist der Speicherplatz, aber der Programmierer kann einen anderen Trennzeichen auswählen. Vergessen Sie nicht, Strg+z zu machen. Das Entfernen von führenden und nachverfolgenden Räumen kann mit anderen in diesem Artikel nicht behandelten Schemata durchgeführt werden. Die Validierung der Token kann auch mit anderen in diesem Artikel angesprochenen Schemata durchgeführt werden.

Primitive Werte können unter Verwendung von NextBoolean (), NextByte (), NextInt () usw. gelesen werden. Diese NextXXX () -Methoden validieren und entfernen auch führende und nachverfolgende Räume.

Der Java -Scanner hat viele weitere Methoden. In diesem Artikel wurde jedoch die grundlegende Verwendung des Scanners erläutert. Die Auswahl eines Tokens erfolgt tatsächlich mit regulären Expressionstechniken. Die Verwendung regulärer Expressionstechniken ist eine Diskussion für einige andere Zeit.