Hallo zusammen,
ich bin neu hier und blutiger Anfänger, so viel schon mal vorweg. Momentan sitze ich an einem Übungsblatt von der Uni und komme einfach nicht mehr weiter. Daher hatte ich auf explizite Hilfe hier gehofft, denn auch google hat mir nur bedingt weiterhelfen können.
Es geht bei der Aufgabe darum, ein Programm zu schreiben, das überprüft ob eine eingegebene Zahl eine gültige Matrikelnummer ist oder nicht. Dazu gibt es die Kriterien, dass natürliche alle Stellen Zahlen sein müssen, die ersten beiden Stellen dürfen nur 50xxxxx, 51xxxxx oder 61xxxxx sein und außerdem muss die eingegebene Zahl siebenstellig sein. Da fängt auch schon mein Problem an. Ich zeige euch am Besten mal was ich bisher gebastelt hab, ich weiß, es ist nicht zwingend schön und das geht bestimmt auch einfacher, aber wie gesagt, ich bin blutiger Anfänger
Mein Problem ist, dass ich mit length zwar die Länge der eingegebenen Ziffer ausgeben kann (hab das schon überprüft), aber bei meiner if-Bedingung hat das keinen Effekt. Also sobald ich das length-Kriterium dazunehme, kommt bei gültiger Matrikelnummer trotzdem die Meldung, sie sei ungültig Und das zweite Problem: sobald ich einen Buchstaben oder eine kürzere Zahl eingebe, also nur vierstellig, kommt eine Fehlermeldung mit String Index out of range
Vielleicht gibt es ja jemanden, der mir auf die Sprünge helfen kann? Wäre sehr dankbar für Hilfe!
ich bin neu hier und blutiger Anfänger, so viel schon mal vorweg. Momentan sitze ich an einem Übungsblatt von der Uni und komme einfach nicht mehr weiter. Daher hatte ich auf explizite Hilfe hier gehofft, denn auch google hat mir nur bedingt weiterhelfen können.
Es geht bei der Aufgabe darum, ein Programm zu schreiben, das überprüft ob eine eingegebene Zahl eine gültige Matrikelnummer ist oder nicht. Dazu gibt es die Kriterien, dass natürliche alle Stellen Zahlen sein müssen, die ersten beiden Stellen dürfen nur 50xxxxx, 51xxxxx oder 61xxxxx sein und außerdem muss die eingegebene Zahl siebenstellig sein. Da fängt auch schon mein Problem an. Ich zeige euch am Besten mal was ich bisher gebastelt hab, ich weiß, es ist nicht zwingend schön und das geht bestimmt auch einfacher, aber wie gesagt, ich bin blutiger Anfänger
Code:
import java.util.Scanner;
public class Matrikelnummer {
public static void main (String[] args) {
Scanner scanner = new Scanner (System.in);
System.out.print("Bitte geben Sie Ihre Matrikelnummer ein: ");
String matrikelnummer = scanner.nextLine();
char a = matrikelnummer.charAt(0);
char b = matrikelnummer.charAt(1);
char c = matrikelnummer.charAt(2);
char d = matrikelnummer.charAt(3);
char e = matrikelnummer.charAt(4);
char f = matrikelnummer.charAt(5);
char g = matrikelnummer.charAt(6);
int length = matrikelnummer.length();
boolean ziffern = ((c<='9') && (c>='0') && (d<='9') && (d>='0') && (e<='9') && (e>='0') && (f<='9') && (f>='0') && (g<='9') && (g>='0'));
boolean erstekombi = ((a=='5') && (b=='0') || (a=='5') && (b=='1'));
boolean zweitekombi = ((a=='6') && (b=='1'));
if (ziffern && (erstekombi || zweitekombi) && (length=='7'))
{ System.out.println("Die Matrikelnummer ist gültig!");}
else
{
System.out.println("Die Matrikelnummer ist ungültig!");
}
}
}
Mein Problem ist, dass ich mit length zwar die Länge der eingegebenen Ziffer ausgeben kann (hab das schon überprüft), aber bei meiner if-Bedingung hat das keinen Effekt. Also sobald ich das length-Kriterium dazunehme, kommt bei gültiger Matrikelnummer trotzdem die Meldung, sie sei ungültig Und das zweite Problem: sobald ich einen Buchstaben oder eine kürzere Zahl eingebe, also nur vierstellig, kommt eine Fehlermeldung mit String Index out of range
Vielleicht gibt es ja jemanden, der mir auf die Sprünge helfen kann? Wäre sehr dankbar für Hilfe!