Hallo!
Ich benötige eine methode die mit isbn (10 & 13) auf gültigkeit überprüft...
Habe schon verschiedene Lösungsansätze probiert, leider alle ohne erfolgt!!
################################
Beispiel für ISBN 10: 3-12-517154-7
Beispiel für ISBN 13: 978-3-7657-2781-8
################################
Was habe ich da falsch? :autsch::autsch:
1. Ich verstehe nicht warum bei (z1*10) + (z2*9) + (z3*8) + (z4*7) + (z5*6) + (z6*5) + (z7*4) + (z8*3) + (z9*2) + (z0*1) --> 2750 raus kommt!
2. z1b + z3b + z5b + z7b + z9b + z11b + z13b + (3 * (z2b + z4b + z6b + z8b + z10b + z12b))
Sollte eigentlich 132 ergeben mein compiler suckt aber 1340 aus ???:L
Bitte um hilfe muss das bis heute abend fertig bekommen
danke! Gruss
Ich benötige eine methode die mit isbn (10 & 13) auf gültigkeit überprüft...
Habe schon verschiedene Lösungsansätze probiert, leider alle ohne erfolgt!!
################################
Beispiel für ISBN 10: 3-12-517154-7
Beispiel für ISBN 13: 978-3-7657-2781-8
################################
Java:
public String setIsbn(String isbn) {
String validIsbn = "## ISBN ungültig ##";
int sumIsbn = 0;
if(isbn.length() == 13){ // ISBN 10
char z1 = isbn.charAt(0);
char z2 = isbn.charAt(2);
char z3 = isbn.charAt(3);
char z4 = isbn.charAt(5);
char z5 = isbn.charAt(6);
char z6 = isbn.charAt(7);
char z7 = isbn.charAt(8);
char z8 = isbn.charAt(9);
char z9 = isbn.charAt(10);
char z0 = isbn.charAt(12);
sumIsbn = ((z1*10) + (z2*9) + (z3*8) + (z4*7) + (z5*6) + (z6*5) + (z7*4) + (z8*3) + (z9*2) + (z0*1)) % 11;
if(sumIsbn == z0){
validIsbn = isbn;
}
}
if(isbn.length() == 17){ // ISBN 13
char z1b = isbn.charAt(0);
char z2b = isbn.charAt(1); // *3
char z3b = isbn.charAt(2);
char z4b = isbn.charAt(4); // *3
char z5b = isbn.charAt(6);
char z6b = isbn.charAt(7); // *3
char z7b = isbn.charAt(8);
char z8b = isbn.charAt(9); // *3
char z9b = isbn.charAt(11);
char z10b = isbn.charAt(12); // *3
char z11b = isbn.charAt(13);
char z12b = isbn.charAt(14); // *3
char z13b = isbn.charAt(16);
sumIsbn = z1b + z3b + z5b + z7b + z9b + z11b + z13b + (3 * (z2b + z4b + z6b + z8b + z10b + z12b));
System.out.println(sumIsbn);
int tmp = sumIsbn % 10;
if((10-tmp)%10 == z13b){
validIsbn = isbn;
}
}
return validIsbn;
}
Was habe ich da falsch? :autsch::autsch:
1. Ich verstehe nicht warum bei (z1*10) + (z2*9) + (z3*8) + (z4*7) + (z5*6) + (z6*5) + (z7*4) + (z8*3) + (z9*2) + (z0*1) --> 2750 raus kommt!
2. z1b + z3b + z5b + z7b + z9b + z11b + z13b + (3 * (z2b + z4b + z6b + z8b + z10b + z12b))
Sollte eigentlich 132 ergeben mein compiler suckt aber 1340 aus ???:L
Bitte um hilfe muss das bis heute abend fertig bekommen
danke! Gruss