Hallo ich habe da ein Verständnisproblem.
Ich möchte gerne zu dem folgenden Programm, welches die eingegebene Nummer mit Hilfe von 2 Methoden überprüft und bestätigt ob die Nummer gültig ist oder nicht, eine weitere Klassenmethode hinzufügen.
Folgendes soll die Methode machen:
- Den String in einen Integer umwandeln. Dafür würde ich wie zuvor parsen.
- eine kleine Rechnung durchführen, wie in der Methode "checkNummer13", nur soll die Methode dann einen Int zurückliefern, damit ich diesen ausgeben kann.
So sieht das Programm aus, ganz unten befindet sich die 3. Methode, die ich versuche zu implementieren. .
Hoffe jemand kann mir da weiterhelfen.
Ich möchte gerne zu dem folgenden Programm, welches die eingegebene Nummer mit Hilfe von 2 Methoden überprüft und bestätigt ob die Nummer gültig ist oder nicht, eine weitere Klassenmethode hinzufügen.
Folgendes soll die Methode machen:
- Den String in einen Integer umwandeln. Dafür würde ich wie zuvor parsen.
- eine kleine Rechnung durchführen, wie in der Methode "checkNummer13", nur soll die Methode dann einen Int zurückliefern, damit ich diesen ausgeben kann.
So sieht das Programm aus, ganz unten befindet sich die 3. Methode, die ich versuche zu implementieren. .
Hoffe jemand kann mir da weiterhelfen.
Java:
import java.util.Scanner;
public class klassenName {
public static void main(String[] args) {
// initialisieren
Scanner sc = new Scanner(System.in);
String a;
//Eingabe
System.out.print("Geben Sie eine Nummer ein: ");
a = sc.nextLine();
sc.close();
// Alle Leerzeichen und Bindestriche entfernen
a = a.replaceAll("( |-)", "");
// Auf die Länge der Nummer überprüfen
boolean istGueltig;
if (a.length() == 10) {
istGueltig = checkNummer10(a);
} else if (a.length() == 13 &&
(a.charAt(0) == '9' &&
(a.charAt(1) == '7' &&
(a.charAt(2) == '8' || (a.charAt(2) == '9'))))) {
istGueltig = checkNummer13(a);
} else {
istGueltig = false;
}
// Ausgabe, ob die Nummer richtig oder falsch ist
if (istGueltig) {
System.out.println(a + " ist gültig " );
} else {
System.out.println(a + " ist nicht gültig ");
}
}
private static boolean checkNummer10(String a) {
int summe = 0;
String dStr;
for (int i = 0; i < 10; ++i){
dStr = a.substring(i, i + 1);
if (i < 9 || dStr != "X") {
summe += Integer.parseInt(dStr) * (10-i);
} else {
summe += 10;
}
}
return (summe % 11 == 0);
}
private static boolean checkNummer13(String a) {
// Erste 12 Ziffern werden abwechselnd mit 1 und 3 multipliziert
int summe = 0;
int dVal;
for (int i = 0; i < 13; i++) {
dVal = Integer.parseInt(a.substring(i, i+1));
if (i % 2 == 0) { // Falls eine gerade Zahl rauskommt mit 1 multiplizieren
summe += dVal * 1;
} else {
summe += dVal * 3; // Sonst mit 3 multiplizieren
}
}
return (summe % 10 == 0);
}
private static String checkNummer13(String a){
int summe = 0;
int dVal;
klassenName.a = Integer.parseInt(a.substring(i, i+1));
int summe = 0;
int dVal;
for (int i = 0; i < 13; i++) {
dVal = Integer.parseInt(a.substring(i, i+1));
if (i % 2 == 0) { // Falls eine gerade Zahl rauskommt mit 1 multiplizieren
summe += dVal * 1;
} else {
summe += dVal * 3; // Sonst mit 3 multiplizieren
}
}
return (summe);
}
Zuletzt bearbeitet von einem Moderator: