Es gibt verschiedene Möglichkeiten, um die Eingabe von Doppelwert in der Java -Programmierung einzunehmen, je nachdem, ob Sie von der Konsole oder aus einer Datei lesen.
1. Verwenden von `scanner` (für Konsoleneingabe):
Dies ist die häufigste Methode, um Benutzereingaben aus der Konsole zu erhalten.
`` `Java
import Java.util.scanner;
öffentliche Klasse DoubleInput {
public static void main (String [] args) {
Scanner scanner =neuer Scanner (System.in);
System.out.print ("Ein zwei Wert eingeben:");
// Verwenden Sie NextDouble (), um ein Doppel zu lesen
Double DoubleValue =Scanner.NextDouble ();
System.out.println ("Sie haben eingegeben:" + DoubleValue);
scanner.close (); // Wichtig:Schließen Sie den Scanner, wenn Sie fertig sind
}
}
`` `
Wichtige Überlegungen mit `scanner`:
* Fehlerbehandlung: `NextDoUble ()` löscht ein `InputMISMatchException" aus, wenn der Benutzer etwas eingibt, das kein gültiges Doppel ist (z. B. Text). Sie sollten diese Ausnahme mit einem "Try-Catch" -Block behandeln, um zu verhindern, dass Ihr Programm abstürzt:
`` `Java
importieren java.util.inputMismatchException;
import Java.util.scanner;
öffentliche Klasse DoubleInputWithExceptionHandling {
public static void main (String [] args) {
Scanner scanner =neuer Scanner (System.in);
System.out.print ("Ein zwei Wert eingeben:");
Double Double Value;
versuchen {
DoubleValue =scanner.NextDouble ();
} catch (inputMisMatchexception e) {
System.out.println ("Ungültige Eingabe. Bitte geben Sie ein gültiges Doppel ein.");
Scanner.Next (); // verbrauchen Sie die ungültige Eingabe
zurückkehren; // oder den Fehler auf andere Weise umgehen
}
System.out.println ("Sie haben eingegeben:" + DoubleValue);
scanner.close ();
}
}
`` `
* `scanner.Next ()`: Der `scanner.Next ()` call im `catch` -Block ist entscheidend. Wenn ein "InputMisMatchException``" auftritt, bleibt die ungültige Eingabe im Puffer des "Scanners". `scanner.Next ()` verbraucht diese ungültige Eingabe, sodass das Programm den Benutzer erneut auffordern kann, ohne in einer unendlichen Schleife stecken zu bleiben.
2. Verwenden von `bufferedReader` (für Konsolen- oder Dateieingabe):
`BufferedReader` ist für große Eingänge effizienter, erfordert jedoch eine bessere Analyse.
`` `Java
Import Java.io.BufferedReader;
importieren java.io.ioException;
importieren java.io.inputStreamReader;
öffentliche Klasse DoubleInputBuffenedReader {
public static void main (String [] args) {
BufferedReader reader =neuer bufferedReader (neuer InputStreamReader (System.in));
System.out.print ("Ein zwei Wert eingeben:");
versuchen {
String input =reader.readline ();
Double Double Value =double.ParseDouble (Eingabe);
System.out.println ("Sie haben eingegeben:" + DoubleValue);
} catch (ioException e) {
System.out.println ("Fehlerleseneingabe:" + e.getMessage ());
} catch (numberFormatexception e) {
System.out.println ("Ungültige Eingabe. Bitte geben Sie ein gültiges Doppel ein.");
}
}
}
`` `
Diese Methode verwendet `Double.Parsedouble ()`, um die String -Eingabe in ein Double umzuwandeln. Es enthält auch die Fehlerbehandlung sowohl für "iOException" (Eingabe/Ausgangsfehler) als auch für `numberFormatexception` (ungültiges Zahlenformat).
3. Befehlszeilenargumente:
Sie können beim Ausführen Ihres Java-Programms einen Doppelwert als Befehlszeilenargument übergeben.
`` `Java
öffentliche Klasse DoubleInputCommandline {
public static void main (String [] args) {
if (args.length> 0) {
versuchen {
Double Double Value =double.Parsedouble (Args [0]);
System.out.println ("Sie haben eingegeben:" + DoubleValue);
} catch (numberFormatexception e) {
System.out.println ("Ungültige Eingabe. Bitte geben Sie ein gültiges Doppel als Befehlszeilenargument an.");
}
} anders {
System.out.println ("Bitte geben Sie einen Doppelwert als Befehlszeilenargument an.");
}
}
}
`` `
Denken Sie daran, dies zu kompilieren und aus Ihrem Terminal auszuführen:`Java DoubleInputCommandline 3.14159`
Wählen Sie die Methode, die Ihren Anforderungen am besten entspricht, und denken Sie daran, immer eine robuste Fehlerbehandlung einzuschließen, um Ihr Programm widerstandsfähiger zu machen. Der "Scanner" -Ansatz wird im Allgemeinen für seine Einfachheit und integrierten Fehlerbehandlungsfunktionen bei der Eingabe der Konsole bevorzugt. `BufferedReader` bietet eine bessere Leistung für große Dateien. Befehlszeilenargumente sind nützlich, um Eingaben beim Ausführen des Programms aus dem Terminal auszuführen.