Methoden Zugriff auf eingelesene Variablen in der main Methode (ohne Änderung der Parameterliste)

Ash

Mitglied
Java:
          public static void main(String[] args){


System.out.printf("Ausweisnummer (Seriennummer und Prüfziffer): ");
BufferedReader in2 = new BufferedReader( new InputStreamReader(System.in) );
String z2 = in2.readLine();


System.out.printf( "Geburtsdatum im Format „JJMMTT“ mit "
		+ "abschließender Prüfziffer: " );
BufferedReader in3 = new BufferedReader( new InputStreamReader(System.in) );
String z3 = in3.readLine();


System.out.printf( "Letzter Tag der Gültigkeit im Format „JJMMTT“ "
		+ "mit abschließender Prüfziffer: " );
BufferedReader in4 = new BufferedReader( new InputStreamReader(System.in) );
String z4 = in4.readLine();

}





// int[] numbers darf kein String-Array sein und es darf kein zusätzliches array in die paramerliste hinzugefügt werden
public static int calcChecksum( int[] numbers ){ 
		
		int FAKTOR[] = {7,3,1};

// Benötige Zugriff auf:                         // zur weiteren Bearbeitung
		String Ausweisnummer = "1220001297"; //Ausweisnummer = z2
		String Geburtsdatum = "6408125"; //Geburtsdatum = z3
		String Ablaufdatum = "1710319"; //Ablaufdatum = z4
		


//Nicht weiter relevant für die Frage___________________________________________

//		Ausweisnummer(Seriennummer und Prüfziffer): Ermittlung der Prüfziffer
		
		int p = 0;
		
		for(int i = 0; i < numbers.length; i++)
		{
			char ch = Ausweisnummer.charAt(i);
			
			numbers[i] = Character.digit(ch, 36);

		
		if( i == 0 || i == 3 || i == 6)
			p = p + numbers[i]*FAKTOR[0]%10;

		else if( i == 1 || i == 4 || i == 7)
			p = p + numbers[i]*FAKTOR[1]%10;
		
		else if( i == 2 || i == 5 || i == 8)
			p = p + numbers[i]*FAKTOR[2]%10;
		
		}
		
		//(Summe der gewichteten Zahlen) modulo 10
		p = p%10;
		

		
//		Geburtsdatum: Ermittlung der Prüfziffer
		
		int g = 0;
		
		
		for(int i = 0; i < 7; i++)
		{
			numbers[i] = (Geburtsdatum.charAt(i)-'0');

		
		if( i == 0 || i == 3)
			g = g + numbers[i]*FAKTOR[0]%10;

		else if( i == 1 || i == 4 )
			g = g + numbers[i]*FAKTOR[1]%10;
		
		else if( i == 2 || i == 5 )
			g = g + numbers[i]*FAKTOR[2]%10;
		
		}
		//(Summe der gewichteten Zahlen) modulo 10
		g = g%10;
		

		
//		Ablaufdatum: Ermittlung der Prüfziffer

		int a = 0;
	
				for(int i = 0; i < 7; i++)
				{
					numbers[i] = (Ablaufdatum.charAt(i)-'0');

				
				if( i == 0 || i == 3 )
					a = a + numbers[i]*FAKTOR[0]%10;

				else if( i == 1 || i == 4 )
					a = a + numbers[i]*FAKTOR[1]%10;
				
				else if( i == 2 || i == 5 )
					a = a + numbers[i]*FAKTOR[2]%10;
				
				}
				//(Summe der gewichteten Zahlen) modulo 10
				a = a%10;
				

//		Ermittlung der Prüfziffer für die gesamte Zeile 
		int z = ( p+g+a+(p+g+a)*7 )%10;
		return z ;
 
Wie kann ich in der methode calcChecksum auf die variablen z2, z3 und z4 zugreifen ( welche sich in der main methode befinden ). Nach dem Zugriff auf z2, z3 und z4 würde ich gerne dem String Ausweisnummer den wert von z2 zuordnen ,dem String Geburtsdatum den von z3 zuordnen und letztlich dem String Ablaufdatum den Wert von z4.
 
Nachdem deine Variablen eh nur Zahlen zu sein scheinen:
- z2, z3, z4 mit Integer.parseInt(...) in Zahlen umwandeln
- new int[] {Integer.parseInt(z2), Integer.parseInt(z3), Integer.parseInt(z4)}; in ein Array werfen
- Methode mit dem Array aufrufen
 

Zurück
Oben