Ich habe versucht, ISBN10-Codes mit Java zu ISBN13-Nummern zu konvertieren. Von . Auf isbn-13.info habe ich den Weg gefunden, sie zu konvertieren.Konvertieren von ISBN10 zu ISBN13
Beispiel: 0-123456-47-9
- Beginne mit Präfix „978“
- Mit den ersten neun Ziffern der ISBN (umfassen Striche) 978-0-123456- 47-
- Berechnen Sie die EAN Prüfziffer die „Mod 10 Algorithm“ 978-0-123456-47-2
mit Hilfe dieser ich mit habe ein Java-Programm erstellt, um die Konvertierung durchzuführen.
public class ISBNConverter {
public static void main(String[] args) {
String isbn10 = "9513218589";
String isbn13 = "";
int sum = 0;
int checkNumber = 0;
int multiplier = 2;
String code = "978" + isbn10.substring(0, isbn10.length() - 1);
for(int i = code.length() - 1; i >= 0; i--) {
int num = Character.getNumericValue(code.charAt(i));
isbn13 += String.valueOf(num * multiplier);
multiplier = (multiplier == 2) ? 1 : 2;
}
for(int i = 0; i < isbn13.length(); i++) {
sum += Character.getNumericValue(isbn13.charAt(i));
}
while(sum % 10 != 0) {
sum++;
checkNumber++;
}
System.out.println(checkNumber);
}
}
Für das Beispiel ISBN10 Code 9513218589
(978951321858
ISBN13 ohne Prüfziffer) es gibt 5 als Schecknummer. Wenn ich es mit dem Konverter auf ISBN's official site errechne, bekomme ich 4 als Prüfsumme. Aus irgendeinem Grund ist die Summe der Zahlen im neuen Code um eins niedriger als es sein sollte.
Ich habe lange damit zu kämpfen und ich glaube, ich habe blind begonnen: Ich kann einfach nicht finden, was ich falsch mache. Könnte jemand dabei helfen?
Sie könnten versuchen, eine Methode zur Berechnung der EAN-Prüfziffer zu implementieren und es zu testen – fge
Danke. Sie sollten dies als Antwort posten, da dies der richtige Weg ist. – MikkoP
Uhm gut, das war nur ein Ratschlag ... – fge