Zahlen und Zeilen lesen
nextInt, nextLine und Stolperfallen
Zahlen und Zeilen lesen ist eine kostenlose Java Academy-Lektion auf CoddyKit. Dies ist Lektion 2 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Java Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Java Academy-Kurs umfasst insgesamt 4 Lektionen.
Typisierte Zahlen einlesen
Scanner kann Zahlen direkt mit Methoden wie nextInt und nextDouble einlesen. Diese wandeln das nächste Token in den passenden primitiven Datentyp um.
Eine Ganzzahl einlesen
nextInt() liest das nächste Token und gibt es als int zurück. Hier verwenden wir eine feste Zeichenfolge, damit das Beispiel ohne Eingabe ausgeführt werden kann.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner("25");
int age = scanner.nextInt();
System.out.println(age + 1);
scanner.close();
}
}Eine Double-Zahl einlesen
nextDouble() liest eine Gleitkommazahl ein. Anschließend können Sie sie für Berechnungen verwenden.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner("3.5");
double radius = scanner.nextDouble();
System.out.println(radius * 2);
scanner.close();
}
}Mehrere Zahlen einlesen
Mehrere numerische Lesevorgänge lesen die Token nacheinander ein und überspringen dabei den Leerraum zwischen ihnen.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner("10 20 30");
int a = scanner.nextInt();
int b = scanner.nextInt();
int c = scanner.nextInt();
System.out.println(a + b + c);
scanner.close();
}
}Bis zum Ende summieren
Kombinieren Sie hasNextInt() mit nextInt(), um eine unbekannte Anzahl von Zahlen einzulesen.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner("5 15 25 35");
int total = 0;
while (scanner.hasNextInt()) {
total += scanner.nextInt();
}
System.out.println(total);
scanner.close();
}
}Die bekannte nextLine-Falle
Hier ist die klassische Falle: nextInt() liest die Zahl ein, lässt aber das Zeilenumbruchzeichen im Puffer. Das nächste nextLine() liest dann diese zurückgebliebene leere Zeile statt des erwarteten Textes.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner("42\nHello World");
int n = scanner.nextInt();
String line = scanner.nextLine();
System.out.println("Number: " + n);
System.out.println("Line: [" + line + "]");
scanner.close();
}
}Den Fallstrick beheben
Die Lösung besteht darin, nach nextLine() einen zusätzlichen Aufruf durchzuführen, um den noch vorhandenen Zeilenumbruch zu verbrauchen, bevor Sie tatsächliche Zeileneingaben lesen.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner("42\nHello World");
int n = scanner.nextInt();
scanner.nextLine();
String line = scanner.nextLine();
System.out.println("Number: " + n);
System.out.println("Line: [" + line + "]");
scanner.close();
}
}Long- und Boolean-Werte lesen
Scanner bietet außerdem nextLong, nextBoolean und weitere Methoden. Jede davon liest ein Token des passenden Typs.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner("9000000000 true");
long big = scanner.nextLong();
boolean flag = scanner.nextBoolean();
System.out.println(big);
System.out.println(flag);
scanner.close();
}
}Nicht passende Typen lösen Ausnahmen aus
Wenn das nächste Token keine gültige Zahl ist, löst nextInt eine InputMismatchException aus. Prüfen Sie im Zweifel immer zuerst mit hasNextInt.
import java.util.InputMismatchException;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner("abc");
try {
scanner.nextInt();
} catch (InputMismatchException e) {
System.out.println("Not an integer!");
}
scanner.close();
}
}Sicheres Einlesen von Zahlen
Ein robustes Muster liest nur dann, wenn der richtige Typ verfügbar ist. Andernfalls wird das ungültige Token eingelesen und verworfen.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner("x 7 y 9");
int sum = 0;
while (scanner.hasNext()) {
if (scanner.hasNextInt()) {
sum += scanner.nextInt();
} else {
scanner.next();
}
}
System.out.println(sum);
scanner.close();
}
}Wichtige Hinweise
Verwenden Sie nextInt und nextDouble für Zahlen, sichern Sie die Eingabe mit der hasNext-Familie ab und denken Sie daran, den übrig gebliebenen Zeilenumbruch zu verbrauchen, bevor Sie zu nextLine wechseln.
Schnelltest
Testen Sie Ihre Kenntnisse zum Einlesen von Zahlen und Zeilen.
Zusammenfassung
Sie haben gelernt, Zahlen und Zeilen einzulesen:
- Mit
nextInt,nextDoubleundnextLonglesen Sie Zahlen eines bestimmten Typs ein - Verwenden Sie bei unbekannter Anzahl eine Schleife mit
hasNextInt - Der Fallstrick mit dem Zeilenumbruch: Rufen Sie nach
nextIntein zusätzlichesnextLineauf - Ungültige Tokens lösen eine
InputMismatchExceptionaus - Sichern Sie Lesevorgänge zur Sicherheit mit der
hasNext-Familie ab
Häufig gestellte Fragen
Ist die Lektion „Zahlen und Zeilen lesen“ kostenlos?
Ja — der vollständige Text von „Zahlen und Zeilen lesen“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Java Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Java Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Zahlen und Zeilen lesen“?
nextInt, nextLine und Stolperfallen Du übst Java Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Java Academy zu starten?
Keine Vorkenntnisse erforderlich. Java Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 2 von 4.
Wie lange dauert die Lektion „Zahlen und Zeilen lesen“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Java Academy-Lektion Code schreiben und ausführen?
Ja. Jede Java Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Eingaben mit Scanner lesen
- Zahlen und Zeilen lesen
- Benutzereingaben validieren
- Alternative mit BufferedReader