[Verständnisprobleme] Java next(),nextLine,nextInt und parseInt!

gstarplayer

Mitglied
Hallo Leute,
ich bin gerade dabei eine Übung aus einem Buch zu erledigen. Jedoch hänge ich gerade dabei ein paar Begriffe zu verstehen :bahnhof:
Habe erst vor kurzem mit Java angefangen, bitte entschuldigt mich, wenn ich nicht alles direkt verstehe. Google und meine Bücher habe ich auch bereits nach eine Lösung durchsucht aber ohne Erfolg.

Hier mein Java-Code aus dem Buch: [Java]
import java.util.Scanner;
public class Summe {

public static void main(String[] args) {

int zahl1,zahl2,ergebnis;
Scanner input = new Scanner(System.in);
System.out.print("Geben Sie die erste Zahl ein: ");
// 1. Variante
zahl1 = Integer.parseInt(input.nextLine());
System.out.print("Geben sie die zweite Zahl ein: ");
// 2. Variante
zahl2 = input.nextInt();
ergebnis = zahl1 + zahl2;
System.out.println("Die Summe von "+zahl1+" und "+zahl2 + " ist: "+ergebnis);
System.out.println("Programmende Summer.");
}

}
[/Java]

Es geht um die Zeile 11-14. Hauptsächlich um den Teil mit zahl1=Integer.parseInt(input.nextLine()); und zahl2=input.nextInt();. Was passiert dort genau?

Mir geht es hier nur darum den Code zu verstehen und nicht wie man es abkürzen oder optimieren kann ;)

Vielen Dank
 
Zuletzt bearbeitet:

gstarplayer

Mitglied
Hierbei handelt es sich um Methoden der Klassen Scanner.
Java API - Dokumentation für java.util.Scanner

Dort findest du eine genaue Beschreibung was diese Methoden machen.

Danke für den Tipp ABER Diese Seite habe ich bereits gesehen, jedoch komme ich damit nicht viel weiter. ???:L
Es wäre toll, wenn es mir einer anhand es Codes erklären kann, was genau in meinem Fall passiert.
Mit der Seite ist auch nicht erklärt, was genau "Integer.parseInt" macht.

Vielen Dank im Voraus :)
 

JavaMeister

Gesperrter Benutzer
Was denkst du, was integer.parseInz macht, wenn es ein String bekommt und integer zurück gibt????

Kann man sich sowas echt nicht herleiten?

Oder vom Namen der Methode und dazugehöriger Beschreibung in der JavaDoc?
 

gstarplayer

Mitglied
Mich würde nur interessieren, was in folgenden Zeilen passiert bzw. wie das dort abläuft;

[Java]zahl1 = Integer.parseInt(input.nextLine());[/Java]
[Java]zahl2 = input.nextInt();[/Java]
 

JavaMeister

Gesperrter Benutzer
Was denkst du, was integer.parseInz macht, wenn es ein String bekommt und integer zurück gibt????

Kann man sich sowas echt nicht herleiten?

Oder vom Namen der Methode und dazugehöriger Beschreibung in der JavaDoc?
 

kaoZ

Top Contributor
man sollte ggf. wenigstens die Deutsche Bedeutung ableiten können

Code:
to parse = analysieren / zerteilen / aufgliedern / parsen

hier wird also irgendwas analysiert, im Falle von
Java:
Integer.parseInt(String s);

handelt es sich um einen Statische Methode der Klasse Integer ( Wrapper-Klasse (verpackt primitive Datentypen des Typs int in ein Objekt))

welche den ihr übergebenen String nach einer Ganzzahl "durchsucht" also ihn analysiert.

sollte dies der fall sein , liefert diese Methode die entsprechende Ganzzahl zurück, enthält der per Parameter übergeben String keien Ganzzahl, wird eine Exception geworfen, in diesem Fall eine NumberFormat oder ParseException.

Alle klassen, welche primitive Datentypen in Objekte "wrappen" ( also umschließen ) bieten normalerweise statische Hilfsmethoden an welche den ihr übergebenen Parameter auf den jeweiligen wert analysieren, und den jeweiligen Wert zurückliefern.

Wenn du wissen willst wie das ganze Implementiert ist , musst du dir diese Implementation im Source Code der klasse Interger anschauen, so kannst du ggf. später nachvollziehen wie hier nach einer Ganzzahl gesucht wird.
 
Zuletzt bearbeitet:

gstarplayer

Mitglied
man sollte ggf. wenigstens die Deutsche Bedeutung ableiten können

Code:
to parse = analysieren / zerteilen / aufgliedern / parsen

hier wird also irgendwas analysiert, im Falle von
Java:
Integer.parseInt(String s);

handelt es sich um einen Statische Methode der Klasse Integer ( Wrapper-Klasse (verpackt primitive Datentypen des Typs int in ein Objekt))

welche den ihr übergebenen String nach einer Ganzzahl "durchsucht" also ihn analysiert.

sollte dies der fall sein , liefert diese Methode die entsprechende Ganzzahl zurück, enthält der per Parameter übergeben String keien Ganzzahl, wird eine Exception geworfen, in diesem Fall eine NumberFormat oder ParseException.

Alle klassen, welche primitive Datentypen in Objekte "wrappen" ( also umschließen ) bieten normalerweise statische Hilfsmethoden an welche den ihr übergebenen Parameter auf den jeweiligen wert analysieren, und den jeweiligen Wert zurückliefern.

Wenn du wissen willst wie das ganze Implementiert ist , musst du dir diese Implementation im Source Code der klasse Interger anschauen, so kannst du ggf. später nachvollziehen wie hier nach einer Ganzzahl gesucht wird.

Das mit "Integer.parseInt" habe ich auch weitestgehend verstanden aber danke nochmal für die gute Erklärung.
Mein Hauptproblem ist, das ich nicht ganz verstehe was [Java]nextLine[/Java] und was [Java]nextInt[/Java] genau macht bzw. was der Unterschied ist?

Vielen Dank :)
 

JavaMeister

Gesperrter Benutzer
Versuch doch mal selber so zu analysieren, wie der vorredner es gemacht hat. Wo liegt hier das Problem?

Und @kaoZ man sieht an diesem Beispiel ganz gut, was es bringt die Lösung auf dem silbernen Tablett zu liefern. Nämlich nix. Kannst hier gesamte Abhandlung schreiben und es wird nix bringen.

:bahnhof:
 
Zuletzt bearbeitet:

gstarplayer

Mitglied
Versuch doch mal selber so zu analysieren, wie der vorredner es gemacht hat. Wo liegt hier das Problem?

Und @kaoZ man sieht an diesem Beispiel ganz gut, was es bringt die Lösung auf dem silbernen Tablett zu liefern. Nämlich nix. Kannst hier gesamte Abhandlung schreiben und es wird nix bringen.

:bahnhof:

Also ich weiß echt nicht was dein Problem ist?
Das Forum ist doch für Fragen da und man sollte auch so fair sein und den Leuten helfen die erst in die Thematik von Java einsteigen!
Und es hat sowohl was gebracht, was @kaoZ geschrieben hat ;)
Wenn du keine Lust hast Leuten zu helfen die noch nicht so weit in Java sind, dann ignoriere doch einfach diesen Beitrag oder bleib ganz aus dem Forum draußen!!!
Habe nur nett um Hilfe gebeten aber da ist man ja wohl falsch in diesem Forum.
 

JavaMeister

Gesperrter Benutzer
Sorry, dass ich an deine Eigeninitiative appelliert habe ^^.

War wohl ein Fehler von mir. Ja, du bist hier im falschen Forum, wenn du denkst, dass jede Frage für dich ausgearbeitet wird...

Denn würde der vorherige Beitrag was gebracht haben, wie du behauptest, dann würdest du die nächste Frage nicht mehr stellen. "Transfer-Leistung".
 

gstarplayer

Mitglied
Ich wollte auch nicht mein ganzen Code ausgearbeitet bekommen, es ging lediglich um die paar Ausdrücke.
Tut mir leid das ich es nicht alles verstanden habe, wusste nicht das man hier ihm Forum ein Java Profi sein muss.
 

JavaMeister

Gesperrter Benutzer
Wenn du meinst, dass so eine Analyse den "Profi" Status benötigt, dann tut es mir sehr leid für dich. Das zeigt aber nur, dass die simplen Sachen dich überfordern. Woran das liegt ist klar. (Ich schreibe es dennoch: Mangelnde Eigeninitiative ;) - FAKT!).

Fang doch einfach so an, wie oben vor gemacht: Übersetzen und die Bedeutung ins Deutsche übertragen. Zur not (=Dict.Leo)
 

gstarplayer

Mitglied
Langsam frage ich mich, was du in diesem Forum zu suchen hast. Du hilfst hier überhaupt nicht weiter ^^
Und an mangelnder Eigeninitiative liegt es bestimmt nicht ;)
Ich habe es bereits ins Deutsche übersetzt, jedoch weiß ich immer noch nicht was die beiden Ausdrücke genau machen bzw. Wo der Unterschied liegt.
Aber das Ganze hier mit die wird mir langsam zu kindisch und auf eine Antwort brauche ich auch nicht mehr zu hoffen.
 

JavaMeister

Gesperrter Benutzer
Wirklich Schade, dass du das so siehst. Dann kann man wohl nix machen.

Du hast leider ein ganz falsches Verständnis von so einem Forum. Und wenn du dir eben nicht helfen lassen möchtest und 0 mitarbeitest sondern auf eine plumpe Lösung hoffst, dann wirst du natürlich enttäuscht. Ich denke das ist dir mittlerweile klar. Du verstehst das Problem eben nicht. Es geht hier nicht um zwei Methoden und was sie machen. Du verstehst das Konzept dahinter nicht. Und es bringt nix zu wissen, was zwei von Milliarden Methoden machen. Man muss eben das Konzept dahinter verstehen und das muss man sich in der lernphase eben erarbeiten.

Bitte lese dir deine postings durch. Immer nur: Ehh hau ab. Sag mir die Lösung. Ich kann nicht ich will nicht. Habe ich noch nie erlebt sowas. Und zumindest etwas Mitarbeit unter geführter Anleitung kann man hier erwarten als Informatiker. Und wenn dann nur persönliche Beleidigungen zurückkommen, dann denkt man sich sein übriges.

Vielleicht versucht es noch jemand, der gerade viel Langeweile hat und die Java Doc für dich hier hinschreibt. Ich bin hier raus.
 
Zuletzt bearbeitet:

X5-599

Top Contributor
Also hier mal meine Annahmen. Mit Vorsicht zu genießen, da ich nicht hundertprozentig in der Materie drin bin.

Oberflächlich betrachtet machen Integer.parseInt(input.nextLine()); und input.nextInt(); erstmal dasselbe. Sie liefern beide ein "int", das über die Kommandozeile eingegeben wurde.
Genauer gesagt liefert input.nextLine() einen String, der von Integer.parseInt() in ein "int" umgewandelt wird. input.nextInt() macht diese Umwandlung intern; und noch etwas mehr:

Es wird per regulärem Ausdruck überprüft, ob es sich bei der Eingabe um etwas handelt, das in einem integer entspricht. Dabei wird anscheinend schon die aktuelle Locale mit einbezogen. Denn sollte diese Überprüfung erfolgreich sein, werden sowas wie Trennzeichen, Pre- Suffixes (gemäß der Locale) entfernt, nicht ASCII Zeichen in ASCII Zeichen gewandelt, sollte es erforderlich sein, ein (-)Zeichen hinzugefügt und zum Schluss wird das ganze an Integer.parseInt() übergeben um das "int" zu erzeugen.

Das wird erkennbar wenn man z.B. versucht die Zahl 1.000 (Eintausend) einzugeben. Integer.parseInt(input.nextLine) wird eine NumberFormatException werfen. input.nextInt() hingegen wird ein "int" mit dem Wert 1000 liefern.
 

Joose

Top Contributor
Also ich weiß echt nicht was dein Problem ist?
Das Forum ist doch für Fragen da und man sollte auch so fair sein und den Leuten helfen die erst in die Thematik von Java einsteigen!

Jap, aber trotzdem sollten diese Leute auch etwas Eigeninitiative zeigen.
Weil das zeigt auch dass man es wirklich lernen will etc, viele brauchen die Hilfe ja nur für Hausaufgaben etc.

Tut mir leid das ich es nicht alles verstanden habe, wusste nicht das man hier ihm Forum ein Java Profi sein muss.

Muss man nicht

Ich wollte auch nicht mein ganzen Code ausgearbeitet bekommen, es ging lediglich um die paar Ausdrücke.

Ich habe dir schon einen Link gegeben wo genau steht was diese beiden Methoden machen.

nextLine()
nextInt()

Ein Scanner ist nichts anderes als eine Klasse, welche dir ermöglicht Daten von einem Stream zu lesen.
So fertig. Mit diesem Satz und den 2 Links solltest du dein Problem lösen können!
 

gstarplayer

Mitglied
Jap, aber trotzdem sollten diese Leute auch etwas Eigeninitiative zeigen.
Weil das zeigt auch dass man es wirklich lernen will etc, viele brauchen die Hilfe ja nur für Hausaufgaben etc.



Muss man nicht



Ich habe dir schon einen Link gegeben wo genau steht was diese beiden Methoden machen.

nextLine()
nextInt()

Ein Scanner ist nichts anderes als eine Klasse, welche dir ermöglicht Daten von einem Stream zu lesen.
So fertig. Mit diesem Satz und den 2 Links solltest du dein Problem lösen können!

Okey, dann wurde das vielleicht falsch verstanden aber meine Frage hat nichts mit einer Hausaufgabe zu tun und ich habe mich ja bereits vorher umgeschaut nach einer Antwort.
Aber meiner Meinung nach kann man mir auch freundlicher antworten, als es JavaMeister gemacht hat.
 

Joose

Top Contributor
Okey, dann wurde das vielleicht falsch verstanden aber meine Frage hat nichts mit einer Hausaufgabe zu
tun

Habe ich auch nicht behauptet ;)
Sondern nur erwähnt das viele Leute nur noch einer Lösung zu einer Hausaufgabe suchen.
Daher kommt auch die Ablehnung und oftmals Unfreundlichkeit gegenüber Postern, welche Hilfe für ein Problem suchen. Dieses Problem aber nur minimal beschreiben, keine Eigeninitiative zeigen und auch nur bedingt Ratschläge annehmen.

und ich habe mich ja bereits vorher umgeschaut nach einer Antwort.

Schön, aber du hast nicht erwähnt auf welchen Seiten du schon was zu diesem Thema gefunden hast.
Hättest du zum Beispiel einen Link gepostet und gesagt was du vermutest was diese Zeile bedeutet wäre das immerhin schon etwas Eigeninitiative.

Außerdem kann man einige Codestücke einfach mal selbst ausprobieren um zu sehen was diese "machen".
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Verständnisprobleme wie Java Programme ablaufen Java Basics - Anfänger-Themen 6
L JavaFX - grundlegende Verständnisprobleme Java Basics - Anfänger-Themen 1
D Interface Verständnisprobleme von Interfaces Java Basics - Anfänger-Themen 5
? Klassen Verständnisprobleme mit Klassen und Metohden Java Basics - Anfänger-Themen 5
? Klassen Verständnisprobleme mit Import Anweisungen Java Basics - Anfänger-Themen 6
J Verständnisprobleme bei Arrays Java Basics - Anfänger-Themen 3
J Erste Schritte türme von hanoi verständnisprobleme Java Basics - Anfänger-Themen 6
K JNI Verständnisprobleme Java Basics - Anfänger-Themen 4
B verständnisprobleme bei Aufgabenstellung Java Basics - Anfänger-Themen 25
M Verständnisprobleme mit Klassennutzung Java Basics - Anfänger-Themen 9
c_sidi90 Hilfe bei GUI Verständnisprobleme Java Basics - Anfänger-Themen 13
A Mal wieder Verständnisprobleme Java Basics - Anfänger-Themen 3
A Code-Verständnisprobleme Java Basics - Anfänger-Themen 10
A Verständnisprobleme eines Lösungscodes Java Basics - Anfänger-Themen 9
B Objektoerientiertes Programmieren, Verständnisprobleme Java Basics - Anfänger-Themen 4
megachucky JDBC-Grundlagen: Verständnisprobleme Java Basics - Anfänger-Themen 31
S Rekursion: Verständnisprobleme Java Basics - Anfänger-Themen 12
H .java Dateien in Eclipse einbinden und ausführen Java Basics - Anfänger-Themen 1
onlyxlia Schlüsselworte Was meint man mit "einen Typ" in Java erstellen? Java Basics - Anfänger-Themen 2
O Java Kara geschweifte Klammern Java Basics - Anfänger-Themen 2
richis-fragen Mausrad logitech kann links und rechts klick wie in java abragen. Java Basics - Anfänger-Themen 15
XWing Java Klssenproblem Java Basics - Anfänger-Themen 4
R Umgebungsvariable java -cp gibt immer Java-Hilfe... Java Basics - Anfänger-Themen 3
farbenlos Csv Datei in Java einlesen Java Basics - Anfänger-Themen 18
F TableModelListener: java.lang.ArrayIndexOutOfBoundsException: 132 Java Basics - Anfänger-Themen 3
G Java 8 - Support-Ende Java Basics - Anfänger-Themen 7
T Java Weihnachtsbaum + Rahmen Java Basics - Anfänger-Themen 1
N Will mit Java anfangen Java Basics - Anfänger-Themen 13
Ü Java Array - Buchstaben als Zahlen ausgeben Java Basics - Anfänger-Themen 22
M Java Iterator Verständnisfrage Java Basics - Anfänger-Themen 6
M Java Mail Programm Java Basics - Anfänger-Themen 4
Sniper1000 Java 391 für Windows Java Basics - Anfänger-Themen 37
J Java long- in int-Variable umwandeln Java Basics - Anfänger-Themen 6
JaZuDemNo Java im Studium Java Basics - Anfänger-Themen 7
E Java Programm zur anzeige, ob Winter- oder Sommerzeit herrscht Java Basics - Anfänger-Themen 62
I QR code in Java selber generieren Java Basics - Anfänger-Themen 5
V Java-Ausnahmebehandlung: Behandlung geprüfter Ausnahmen Java Basics - Anfänger-Themen 1
krgewb Java Streams Java Basics - Anfänger-Themen 10
A Überwältigt von der komplexen Java Welt Java Basics - Anfänger-Themen 29
O Mehrfachvererbung auf Spezifikations- und Implementierungsebene in Java. Interfaces Java Basics - Anfänger-Themen 19
John_Sace Homogene Realisierung von Generics in Java ? Java Basics - Anfänger-Themen 19
P Meldung aus Java-Klasse in Thread an aufrufende Klasse Java Basics - Anfänger-Themen 1
R mit Java API arbeiten Java Basics - Anfänger-Themen 9
P JDK installieren Probleme bei der Java-Installation Java Basics - Anfänger-Themen 8
S Java: Wie sortiere ich eine ArrayList benutzerdefinierter Objekte nach einem bestimmten Attribut? Java Basics - Anfänger-Themen 2
Timo12345 JNLP File mit Java öffnen Java Basics - Anfänger-Themen 2
S Video Editierung mit Java.._ Java Basics - Anfänger-Themen 2
F Einstelungen in Java - CursorBlinkRate Java Basics - Anfänger-Themen 10
A PHP $_POST["name"] in Java Java Basics - Anfänger-Themen 3
vivansai21 Is there a oneliner to create a SortedSet filled with one or multiple elements in Java? Java Basics - Anfänger-Themen 9
Athro-Hiro Weißes Bild in Java erstellen Java Basics - Anfänger-Themen 3
Arjunreddy Can someone please tell me how to use a debugger in BlueJ(a Java environment) Java Basics - Anfänger-Themen 1
M Java assoziationen (UML) Java Basics - Anfänger-Themen 8
H Excel-Tabellen mit Java erstellen Java Basics - Anfänger-Themen 4
Simon16 Java ArrayListe von einer Klasse sortieren Java Basics - Anfänger-Themen 2
P Wie kann ich in meinem Java Programm etwas dauerhaft speichern? Java Basics - Anfänger-Themen 5
H Nutzt Eclipse alle CPU-Threads beim Ausführen von Java-Programmen? Java Basics - Anfänger-Themen 4
xXGrowGuruXx Java einstieg, leichte sache 0 verstanden Java Basics - Anfänger-Themen 7
A java.sql.SQLException: Data type mismatch. Java Basics - Anfänger-Themen 1
H Java-Programm zur Ausgabe von Zuständen Java Basics - Anfänger-Themen 80
N Java Spiel Figur auf dem Hintergrundbild bewegen. Java Basics - Anfänger-Themen 11
G Kann Java-Programm nicht als jar aufrufen, auch als EXE nicht Java Basics - Anfänger-Themen 19
N Java Taschenrechner hat Jemand vlt einen Tipp dafür wie ich jetzt die buttons verbinden kann und das Ergebnis auf dem textfield anzeigen lassen kann Java Basics - Anfänger-Themen 13
A Lerngruppe Java Java Basics - Anfänger-Themen 2
G Help me in the Java Program Java Basics - Anfänger-Themen 2
L Java- Vererbung Java Basics - Anfänger-Themen 4
LimDul Suche Java Stream Tutorial Java Basics - Anfänger-Themen 2
_so_far_away_ Ich möchte Java lernen Java Basics - Anfänger-Themen 11
benny1993 Java Programm erstellen für ein Fußball-Turnier Java Basics - Anfänger-Themen 3
M Datentypen While-Schleife eine Java Methode erstellen Java Basics - Anfänger-Themen 3
V Bild per Java Script austauschen Java Basics - Anfänger-Themen 7
MoxMorris this Keyword in Java Java Basics - Anfänger-Themen 14
D Wie kann man in Java nach Arrays auf Duplikate prüfen Java Basics - Anfänger-Themen 12
wolei JAVA Zeitdifferenz feststellen. Java Basics - Anfänger-Themen 4
DiyarcanZeren Rekursion in Java Java Basics - Anfänger-Themen 5
wolei Java generic interface in a generic class Java Basics - Anfänger-Themen 6
monsterherz Ablauf der Erstellung eines Java Programmes Java Basics - Anfänger-Themen 17
monsterherz Circle.java:5: error: <identifier> expected Java Basics - Anfänger-Themen 2
julian-fr Wie kann ich am besten Java lernen? Java Basics - Anfänger-Themen 17
A Java-Properties und -RessourceBundles Java Basics - Anfänger-Themen 5
lrnz22 Java-Basics-Aufgabe Java Basics - Anfänger-Themen 8
R Java kann nicht installiert werden Java Basics - Anfänger-Themen 8
marcelnedza Finde meinen Fehler in einer Methode nicht, Java Karol Java Basics - Anfänger-Themen 15
G In ein java Dokument Ton einbinden Java Basics - Anfänger-Themen 1
C was heisst es wenn java ']' erwartet ? Java Basics - Anfänger-Themen 2
KeinJavaFreak Erste Schritte Programm "Java(TM) Platform SE binary " nicht vorhanden Java Basics - Anfänger-Themen 1
KeinJavaFreak Erste Schritte Java "Executable Jar File" nicht vorhanden Java Basics - Anfänger-Themen 1
melisax Java 2D-Array Tabelle Java Basics - Anfänger-Themen 4
melisax Java Array Wert an bestimmtem Index angeben Java Basics - Anfänger-Themen 14
J Java Testklasse Java Basics - Anfänger-Themen 5
P Java Selenium . Parameterized.Parameters erzeugt eine Fehlermeldung Java Basics - Anfänger-Themen 14
W Java-Code mit Array Java Basics - Anfänger-Themen 14
W Java-Code Java Basics - Anfänger-Themen 2
P BeforeEach AfterEach werden nicht ausgeführt. Java / Selenium Java Basics - Anfänger-Themen 4
A Wie führe ich eine Batch-Datei von meiner Java-Anwendung aus? Java Basics - Anfänger-Themen 18
W Java code- TicTac toe Java Basics - Anfänger-Themen 51
Ostkreuz Java Docs Java Basics - Anfänger-Themen 9
R Java boolean Unterschied " == " und " = " Java Basics - Anfänger-Themen 3
D Java Programm mit Batch-Datei starten Java Basics - Anfänger-Themen 32
W Java-code Java Basics - Anfänger-Themen 8

Ähnliche Java Themen

Neue Themen


Oben