Hallo,
ich bin ein blutiger Anfänger in Java, habe meine ersten Erfahrungen mit dem Java-Hamster-Modell gesammelt und möchte mich jetzt verstärkt an "echtem" Java versuchen.
Heute habe ich ein kleines Programm geschrieben, das bei einer EAN-13 die Prüfziffer berechnet (untenstehend der Code, kompilier- und ausführbar). Das Programm liefert das richtige Ergebnis, wenn - wie vorgesehen - eine 12-stellige Zahl eingegeben wird (wahrscheinlich kein besonders schöner Stil, das mit einem long zu machen, aber ich wusste mir nicht anders zu helfen
). Es berechnet jedoch auch einen Wert, wenn eine Zahl eingegeben wird, die kürzer oder länger als 12 Zeichen ist; eine solche Eingabe würde ich gern verhindern und eine entsprechende Meldung ausgeben lassen ("Die eingegebene Nummer ist zu kurz/lang. Bitte geben Sie eine 12-stellige Zahl ein" etc.), aber ich weiß nicht, wie man das umsetzen würde. Mir geistert etwas mit Exceptions im Kopf herum, aber vielleicht bin ich da auch völlig auf dem Holzweg…
Kann mir jemand helfen?
ich bin ein blutiger Anfänger in Java, habe meine ersten Erfahrungen mit dem Java-Hamster-Modell gesammelt und möchte mich jetzt verstärkt an "echtem" Java versuchen.
Heute habe ich ein kleines Programm geschrieben, das bei einer EAN-13 die Prüfziffer berechnet (untenstehend der Code, kompilier- und ausführbar). Das Programm liefert das richtige Ergebnis, wenn - wie vorgesehen - eine 12-stellige Zahl eingegeben wird (wahrscheinlich kein besonders schöner Stil, das mit einem long zu machen, aber ich wusste mir nicht anders zu helfen
Kann mir jemand helfen?
Java:
import java.util.Scanner;
public class EANPruefziffer {
static long[] ziffern = new long[12];
public static void main(String[] args) {
System.out.println("Bitte geben Sie die Artikelnummer ein (in der Form 123456789012).");
System.out.println("Die Artikelnummer besteht aus den ersten 12 Stellen des EAN-Codes ohne die Pruefziffer.");
einlesen();
int ergebnis = rechnung();
ergebnis = ergebnis % 10;
ergebnis = 10 - ergebnis;
if(ergebnis == 10) {
System.out.println("Die Pruefziffer fuer die eingegebene Artikelnummer lautet 0.");
} else System.out.println("Die Pruefziffer fuer die eingegebene Artikelnummer lautet " + ergebnis + ".");
}
public static void einlesen() {
//die Ziffern werden in umgekehrter Reihenfolge in das Array eingelesen
Scanner s = new Scanner(System.in);
long speicher = 0;
speicher = s.nextLong();
for(int i = 0; i < ziffern.length; i++) {
ziffern[i] = speicher % 10;
speicher /= 10;
}
}
public static int rechnung() {
for(int j = 0; j < ziffern.length; j += 2) {
ziffern[j] = ziffern[j] * 3;
}
// Wird nicht benoetigt, steht nur der Vollstaendigkeit halber drin
// for(int k = 1; k < ziffern.length; k += 2) {
// ziffern[k] = ziffern[k] * 1;
// }
int summe = 0;
for(int l = 0; l < ziffern.length; l++) {
summe = summe + (int)ziffern[l];
}
return summe;
}
}