Martikelnr

deni100

Aktives Mitglied
Code:
package yapmasunu;

public class Martikel {
	int martikel;

	public static void main(String[] args) {
		Martikel martikel = new Martikel();
		martikel.pruefen(945678);
	}

	public void pruefen(int martikel) {

		this.martikel = martikel;
		String umwandlung = Integer.toString(martikel);
		int[] feld = new int[umwandlung.length()];
		int j = 0;
		for (char c : umwandlung.toCharArray()) {
			feld[j++] = Character.getNumericValue(c);
			System.out.print (c);
		}
		
		int gq= feld[0]*2+feld[1]*1+feld[2]*4+feld[3]*3+feld[4]*2+feld[5]*1;
		String umwandlung2 = Integer.toString(gq);
		int []feld2 = new int [umwandlung2.length()];
		int jj=0;
		for (char c : umwandlung2.toCharArray()) {
			feld2[jj++] = Character.getNumericValue(c);
		}
		
		for (int i =0;i<feld.length;i++){
			//System.out.println (feld[i]);
		}
		System.out.println ("feld2 "+feld2[1]+"feld 1"+feld[5]);
		if (feld2[1]==feld[5]){
			System.out.println ("JEEEAA");		
			
		}else
			throw new IllegalArgumentException ("Ungültige Martikelnr");
		
	}

}

Ich habe eine Int Martikelnr , die ich zerlege und ins Feld lege , damit ich das Gesamtgewicht der Martikelnr zur Überprüfung der Gültigkeit berechnen kann.


Meine Frage habt ihr vllt Vorschläge wie ich das effizienter machen könnte ?
MfG
 

Robokopp

Bekanntes Mitglied
Also erstmal heißt es Matrikelnummer, zweitens rall ich nicht so ganz was du vor hast und was du mit Gesamtgewicht meinst. Willst du vielleicht sowas wie eine Quersumme als eine Art Prüfsumme errechnen? (wenn ja macht es wenig Sinn)
 

pro2

Bekanntes Mitglied
Verstehe deinen Code auch nicht so ganz. Aber vielleicht suchst du etwas in der Richtung?

Java:
    public int pruefen(int martikel)
    {
        int[] wertigkeit =
        {
            1, 2, 3, 4, 1, 2
        };
        int jj = 0;
        for (int i = 0; i < 6; i++)
        {
            jj += (martikel % 10) * wertigkeit[i];
            martikel /= 10;
        }
        return jj;
    }
 
J

JohannisderKaeufer

Gast
Um eine bestimmte Ziffer in einer Zahl zu bekommen, kann man auch Modulo verwenden.
Java:
int a = 123456;
int ziffer6 = a % 10;
int ziffer5 = (a / 10) % 10;
int ziffer4 = (a / 100) % 10;

und mit hilfe einer Funktion pow die aus 10 und 2, 100 macht und aus 10 und 3, 1000, kann man das ganze noch ein wenig vereinfachen.
Java:
ziffer6 = (a / pow(10, 0)) % 10;
ziffer5 = (a / pow(10, 1)) % 10;
ziffer4 = (a / pow(10, 2)) % 10;
 

deni100

Aktives Mitglied
Code:
package yapmasunu;

public class Martikel {
	int martikel;

	public static void main(String[] args) {
		Martikel martikel = new Martikel();
		martikel.pruefen(945678);
	}

	public void pruefen(int martikel) {

		
		
		int ziffer5 = martikel % 10;
		int ziffer4 = (martikel / 10) % 10;
		int ziffer3 = (martikel / 100) % 10;
		int ziffer2 = (martikel / 1000) % 10;
		int ziffer1 = (martikel / 10000) % 10;
		int ziffer0 = (martikel / 100000) % 10;
		int gq = ziffer0*2+ziffer1+ziffer2*4+ziffer3*3+ziffer4*2+ziffer5;
		int gq1= (gq/10)%10;
		
		if (ziffer5 ==gq1){
			System.out.println ("Gültige Matrikelnr");
			
		}else
			throw new IllegalArgumentException ("Ungültige Matrikelnr");
		
		
		
	}

}

Danke Leute habs effizienter gemacht.
 

Neue Themen


Oben