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.
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: