Hallo, die Aufgabenstellung sagt mir das eine gültige ISBN Nummer modulo 11 gleich 0, gültig ist. Ich soll in einer Methode diese Berechnung anstellen und dann in der Main ausgeben ob diese korrekt ist, mit true oder false.
So wie ich das verstanden habe müsste man also bei 3-528-05912-5, 3*1+5*2+2*3... etc rechnen. In der Schleife habe ich versucht das zu lösen, 1+i ist die Zahl mit der die Nummer multipliziert wird und mit c habe ich eigentlich doch die Nummer beginnend bei charAt(0). Danach wird das Ergebnis modulo 11 gerechnet und sollte dann die demenstprechenden boolean ausgeben. Wo liegt mein Fehler?
Liebe Grüße
Java:
public class ISBN {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("ISBN überprüfen");
String nummer = scan.nextLine();
nummer = nummer.replace(" ", "");
nummer = nummer.replace("-", "");
if (nummer.length() != 10) {
System.out.println("ISBN besteht aus 10 Ziffern - Erneut eingeben");
scan.nextLine();
}
System.out.println(istISBN(nummer));
}
public static boolean istISBN(String nummer) {
int ergebnis = 1;
for (int i = 0; i <= 10; i++) {
char c = nummer.charAt(i);
ergebnis += (1 + i) * c; }
int check = ergebnis % 11;
if (check == 0) {
return true;
} else {
return false;
}}}
Liebe Grüße