Input/Output ISBN Leser - falsche Eingabe ausgeben

Hallo, hoffe hier bin ich richtig. Bin neu eingestiegen und die Aufgabe bekommen ein Programm zu schreiben, welches 10-stellige ISBN Nummern überprüfen soll.

Die Hauptschwerpunkte der Aufgabe sind hierbei:
1.Eine Fehlermeldung ausgeben, wenn die ISBN Nummer zu lang ist
2. Eine Fehlermeldung ausgeben, wenn ungültige Zeichen benutzt wurden und gleichzeitig aufzeigen welches Zeichen ungültig ist.
3.Die Prüfziffer am Ende überprüfen, und gegebenfalls korrigieren, anscheinend mit Hilfe einer komplizierten rechnung :D

Ich hänge momentan bei Schritt 2 fest. Habe bis dato nur bin Zahlen gearbeitet und Typen wie String und char verwirren mich in der Anwendung. Genauso wie boolean...

hier zunächst mein Code:

[Java]
//Hausaufgabe 3:ISBN
//Name:

import java.util.Scanner;
class ISBN {
public static void main (String[]args){
Scanner scan=new Scanner (System.in);
System.out.print ("Bitte 10-stellige ISBN eingeben: ");
String isbn=scan.next();
boolean 1,2,3,4,5,6,7,8,9 = true ;
isbn = isbn.replaceAll ("-", "");
if (isbn.length()!=10){
System.out.println ("falsche Laenge") ;
}
else if {
isbn=false;
System.out.println ("ungueltiges Zeichen: " +charAt(false));




}
}

[/Java]

Habe durch erstmalige Nutzung von boolean versucht irgendwie dem Programm deutlich zu machen, dass nur Ziffern von 1-9 in der String Eingabe gültig sind.
Die letzte Zeile mit charAt(false) war ein Versuch meinerseits, die ungültige Stele ausgeben zu lassen...

Hoffe das sieht nich allzu blöd aus, aber irgendwie fehlt mir hier ne Idee :bahnhof:
 

Moro

Mitglied
Also ein boolean ist ein normaler Datentyp. Eine Variable vom Typ boolean muss normal definiert und initalisiert werden.

Java:
boolean istGueltig = false;

Damit kommst du erstmal so nicht weiter. Ein Großteil deines Codes verstehe ich nicht. Aber das ist erstmal nicht schlimm.

Wenn du eine "gueltige Menge" an zulaessigen Dingen definieren willst, dann tu das in einem Array. Du willst wahrscheinlich nachher über dein ISBN-String-Objekt itererieren mit einer Schleife und der Zuhilfenahme der charAt Methode (charAt muss übrigens auf einem String-Objekt aufgerufen werden per Punkt-Operator wie auch deine length() Methode), und dieses Zeichen dann mit jedem Zeichen aus deiner Menge zulässiger Zeichen vergleichen. Daher bietet sich an dass du die gültigen Zahlen nicht als Zahlen sondern in einem Char-Array zu speichern. CharArray deshalb, weil du dir so das "umcasten" der Zahlen aus deinem String Objekt sparst.

Java:
char[] gueltigeZahlen = { '1', '2', '3', '4', '5', '6', '7', '8', '9' };

Also ein Ansatz:

Du hast eine for Schleife die über dein ISBN-String iteriert. In der for Schleife kannst du als Angabe mit der .length() Methode aussagen, wie lange die Schleife laufen soll (nämlich genau so lange wie dein String-ISBN lang ist). Mit der charAt() Methode kannst du dann auf die jeweilige Position deines Strings zugreifen, in dem du den aktuellen SchleifenIndex im Paramter übergibst ala. isbn.charAt(laufIndex). Du nimmst dann in der Schleife eine weitere Schleife zur Hilfe, worin du die aktuelle charAt() mit jedem Zeichen deines Char-Arrays vergleichst. Das ganze kannst du dann in einem Wahrheitswert speichern. z. B.

Java:
istGueltig = (isbn.charAt(ersterLaufIndex) == gueltigeZahlen[zweiterLaufIndex];

Wenn istGueltig dann false ist, dann hast du ein falsches Zeichen erkannt. Du musst natürlich zusehen, dass du das dann irgendwo auch sofort abspeicherst, oder ausgibst (ich kenne deine Aufgabenstellung nicht, das kriegst du schon selbst hin) weil natürlich der Wahrheitswert im nächsten Schleifendurchlauf wieder überschrieben wird. Das koenntest du verhindern, in dem du die Schleife sofort abbrichst wenn ein falsches Zeichen gefunden wurde. Aber bitte nicht mit break; sondern in dem du vorher "istGueltig" außerhalb der Schleife mit true initalisierst und "istGueltig" dann mit in die Schleifenbendingung nimmst z. B. (ersterLaufIndex < isbn.length() && istGueltig). Ob und wie das Sinn macht (denn es kann ja mehr als ein Zeichen in der ISBN falsch sein, musst du Anhand der Aufgabenstellung selbst beurteilen und eine entsprechende Lösung finden).

Ich hoffe es ist einigermaßen klar geworden :)
 
Zuletzt bearbeitet:
Ich hab es gelesen, bin momentan noch auf Vorlesung bis abends. Werde mich dann nochmal ran setzen. Hoffe ich kann dich dann nochmal damit belästigen :-D
Danke schonmal für deine Hilfe :)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
sserio Prüfziffer einer ISBN Nummer herrausfinden. Java Basics - Anfänger-Themen 14
R ISBN-10-Code überprüfen Java Basics - Anfänger-Themen 7
M ISBN-Code Java Basics - Anfänger-Themen 26
A OOP ISBN-Prüfziffer Java Basics - Anfänger-Themen 7
E ISBN Nummer mit boolean Java Basics - Anfänger-Themen 5
F ISBN Prüfziffer Java Basics - Anfänger-Themen 2
F ISBN Prüfziffer berechnen Java Basics - Anfänger-Themen 17
W ISBN 13-Stellig Java Basics - Anfänger-Themen 3
J Gültigkeit einer ISBN Nummer prüfen! Java Basics - Anfänger-Themen 5
N ISBN nummern überprüfen Java Basics - Anfänger-Themen 1
M Einlesen > new Leser Java Basics - Anfänger-Themen 5
T User input in Verbindung mit ChronoUnit anpassen und falls falsche Eingabe getätigtwird Java Basics - Anfänger-Themen 7
B Binärzahlen auflisten, falsche Ausgabe? Java Basics - Anfänger-Themen 1
Z Java ArrayList speichert falsche Daten ab bzw. gibt falsche Daten aus? Java Basics - Anfänger-Themen 42
volcanos HashSet und Iterator -> Falsche Sortierreihenfolge ? Java Basics - Anfänger-Themen 18
O Falsche Antworten zu Fragen Java Basics - Anfänger-Themen 4
B Compiler-Fehler Fehlermeldung Exception in thread, falsche Eingabewert Java Basics - Anfänger-Themen 2
D falsche eingabe erkennen Java Basics - Anfänger-Themen 2
F Wieso wird immer die falsche Mausposition angegeben? Java Basics - Anfänger-Themen 1
JaVaN0oB Wörterraten - Falsche Ausgabe, String/Chars vergleichen Java Basics - Anfänger-Themen 2
H Falsche Ausgabe Java Basics - Anfänger-Themen 2
K falsche Eingabe abfangen Java Basics - Anfänger-Themen 8
L Falsche Methode wird geladen Java Basics - Anfänger-Themen 2
T JLabel hat falsche größe Java Basics - Anfänger-Themen 1
H Swing Button hat falsche Größe Java Basics - Anfänger-Themen 5
T Input/Output Falsche Eingabe ausgeben Java Basics - Anfänger-Themen 3
R StringBounds falsche Ergebnisse Java Basics - Anfänger-Themen 5
D Falsche Zeile wird in JTable gelöscht Java Basics - Anfänger-Themen 6
W Array in String und String in Array - falsche Ausgaben Java Basics - Anfänger-Themen 20
T Falsche Ausgabe ???? Java Basics - Anfänger-Themen 13
S Falsche Ausgabe Java Basics - Anfänger-Themen 6
V Personenverwaltung mit List<>, falsche Ausgaben Java Basics - Anfänger-Themen 5
R Methoden Switch wählt das Falsche Java Basics - Anfänger-Themen 17
K Falsche Methode Java Basics - Anfänger-Themen 3
J Falsche Darstellung von Float Java Basics - Anfänger-Themen 2
M Falsche Eingabe wiederholen lassen Java Basics - Anfänger-Themen 2
W Methoden Falsche Felder von Methode belgegt Java Basics - Anfänger-Themen 14
M falsche implementierung von currentTimeMillis() ? Java Basics - Anfänger-Themen 14
F charAt-Methode liefert falsche Unicode-Werte Java Basics - Anfänger-Themen 8
P Falsche Werte bei Zeitmessungen Java Basics - Anfänger-Themen 7
Helgon Falsche Zeichen im Text Java Basics - Anfänger-Themen 10
S Parameterübergabe - identische Funktionen, aber falsche Funktion Java Basics - Anfänger-Themen 5
G Bubblesort - Falsche Sortierung Java Basics - Anfänger-Themen 6
D Kriege falsche MD5 Java Basics - Anfänger-Themen 12
R run ->eclipse ruft falsche Programme auf Java Basics - Anfänger-Themen 5
D p q formel gibt zum Teil falsche Werte aus Java Basics - Anfänger-Themen 5
S Falsche Version? Java Basics - Anfänger-Themen 2
C Falsche Zeit Java Basics - Anfänger-Themen 2
V Falsche Augabe Java Basics - Anfänger-Themen 16
C Klammern einlesen!!! Falsche Ausgabe!!!! Java Basics - Anfänger-Themen 4
S Falsche Reihenfolge von Methodenaufrufen Java Basics - Anfänger-Themen 8
H Falsche Eingabe über try-catch abfangen Java Basics - Anfänger-Themen 2
K Verschiebeoperatoren - manchmal falsche Ergebnisse Java Basics - Anfänger-Themen 7
L Datenbankanbindung ODBC falsche pfadangabe? Java Basics - Anfänger-Themen 3
O Falsche Bed. (ein überlauf) seh den Fehler aber nicht. Java Basics - Anfänger-Themen 3
G static array liefert falsche Werte zurück Java Basics - Anfänger-Themen 2
S Falsche Ausgabe Java Basics - Anfänger-Themen 3
L Wegen TableSorter wird falsche Zeile einer Tabelle gelöscht? Java Basics - Anfänger-Themen 2
G falsche Version Java Basics - Anfänger-Themen 3
L Falsche Umsetzung von MVC, brauche Hilfe Java Basics - Anfänger-Themen 6
D Tabelle -> Daten eingeben -> Falsche erhalten Java Basics - Anfänger-Themen 9
S Falsche Ausgabe? Java Basics - Anfänger-Themen 2
F Falsche Daten aus Datei Java Basics - Anfänger-Themen 2
G Falsche Java befehle, doch was ist falsch? Java Basics - Anfänger-Themen 9
C falsche Eingabe abfangen Java Basics - Anfänger-Themen 8
M Falsche do-Schleife? Java Basics - Anfänger-Themen 4
E falsche Ausgabe Java Basics - Anfänger-Themen 7
D Falsche Datumsausgabe? Java Basics - Anfänger-Themen 5
J erhalte falsche Kalenderwoche - wo ist der Fehler? Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben