ISBN 13-Stellig

wiz

Mitglied
Hallo, bin dabei einen ISBN-checker zu programmieren aber iwie läuft das noch nicht richtig.
Mache das zum ersten Mal.

Mein Problem ist, das das Prog. nur eine richtige Prüfziffer ausgeben soll, es kommen aber ganz viele.

Java:
package a.isbn.java;

import java.util.Scanner;

public class ISBNchecker {

public static void main(String[] args) {
		
Scanner sc = new Scanner(System.in); // ISBN einlesen
		
	String isbn;
	
System.out.print("Geben Sie bitte eine ISBN-Nummer ein: ");
	
    isbn = sc.nextLine();
	sc.close();
	
isbn = isbn.replaceAll("( |-)", ""); // Leerzeichen und Bindestriche entfernen
	
boolean anzahl = false; //Prüfen ob die ISBN-Nummer 13 Zeichen lang ist
    if (isbn.length() == 13) {
	    anzahl = true;
	} else {anzahl = false;
	
System.out.println("Die ISBN-Nummer hat das falsche Format");
	
	}
	
if (isbn.charAt(0) !='9' // Prüfen ob die ISBN mit 978 oder 979 anfängt
    || isbn.charAt(1) !='7' 
	||isbn.charAt(2)  !='9' 
	&& isbn.charAt(2) != '8')  {
	System.out.println("Die ISBN-Nummer ist ungülitg");
	}

	

	
int a=0;
int b=0;
int c=0;

	
	
for (int i = 0; i < 12; i++) { // 
    char ergebnis = isbn.charAt(i);
	    if (i%2 == 0) {
		    b += Integer.parseInt(isbn.substring(i,i+1));
		    } else {
			    c += (Integer.parseInt(isbn.substring(i,i+1))*3);
			       }
		        c -= Integer.parseInt( new String(new char[] {
		            isbn.toCharArray()[isbn.toCharArray().length-1] }));
		        
                    a = b + c;
	       
int x = 0;
    while(a%10!=0) {
	    a++;
	    x++;
	               }	
System.out.println("Die richtig Prüfziffer lautet:" + x); 
		 }	
}
}
 
Zuletzt bearbeitet von einem Moderator:

JavaMeister

Gesperrter Benutzer
Registrierst du dich für jede Frage neu?

System.out.println("Die richtig Prüfziffer lautet:" + x);

Das hier ist in eiener for schleife, klar, dass das hier oft das X ausgegeben wird.
 

wiz

Mitglied
Hallo, nein ich habe das Forum erst heute kennengelernt.

Sehe den Wald vor lauter Bäume nicht mehr, weil ich daran schon länger sitze und das mein erstes Programm ist.

Danke für den Hinweis
 

wiz

Mitglied
Kannst du mir auch sagen warum er nur bei bestimmten Prüfziffern das richtige Ergebnis liefert?

z. B. bei der ISBN 978-3-540-76319-2

wenn ich 978-3-540-76319-5 eingebe, liefert er mir die richtige Prüfziffer 2, bei 978-3-540-76319-6 nicht mehr?
 

Ähnliche Java Themen

Neue Themen


Oben