Hallo Leute. Ich bin gerade Am Tüfteln wie ich 2 Arrays verbinde.
Im Konkreten geht es um folgendes:
Ich bekomme beim Zusammenfügen diese Meldung.
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 20
at ibanCalc.main(ibanCalc.java:40)
Und ich kann beim besten nicht verstehen, warum mein Array kürzer wird. :bahnhof:
Ich setze im ersten Schritt ein Array mit 20 Stellen einem Array mit 22 gleich. Die zwei scheinen aber dann wie verschwunden... Oder irre ich mich da, beim Verhalten von Arrays in diesen Situationen?
lg Thomas
PS: Thema des ganzen Programms ist eine IBAN Nummer auf ihre Gültigkeit zu kontrollieren.
International Bank Account Number - Wikipedia, the free encyclopedia
Im Konkreten geht es um folgendes:
Ich bekomme beim Zusammenfügen diese Meldung.
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 20
at ibanCalc.main(ibanCalc.java:40)
Und ich kann beim besten nicht verstehen, warum mein Array kürzer wird. :bahnhof:
Ich setze im ersten Schritt ein Array mit 20 Stellen einem Array mit 22 gleich. Die zwei scheinen aber dann wie verschwunden... Oder irre ich mich da, beim Verhalten von Arrays in diesen Situationen?
lg Thomas
PS: Thema des ganzen Programms ist eine IBAN Nummer auf ihre Gültigkeit zu kontrollieren.
International Bank Account Number - Wikipedia, the free encyclopedia
Java:
public class ibanCalc {
public static void main(String[] args) {
System.out.println("Input 20digit IBAN Code: ");
//Variables
char zwSpeicher[] = new char [6];
char endArray[] = new char [20];
char backupArray[] = new char [22];
String str="AT983200000006137564";
//Get the First 4 digits
endArray = str.toCharArray();
System.out.print("ArrayKontrolle:\t\t\t");
System.out.println(endArray); //Control
//Die ersten 4 Zeichen herausnehmen
for(int i=0; i<4; i++){
zwSpeicher[i]=endArray[i];
}
//zwSpeicher2=zwSpeicher; //zwSpeicher sichern
//Alle Zeichen nach vorne Rücken
for(int zaehler=0; (zaehler+4)<20; zaehler++){
endArray[zaehler]=endArray[zaehler+4];
}
System.out.print("Verrücktes-Array-Kontrolle:\t");
System.out.println(endArray); //Control
// Buchstaben in Zahlen umwandeln und 0 hinzufügen
int a, b;
a=(int)zwSpeicher[0]-55;
b=(int)zwSpeicher[1]-55;
zwSpeicher = ("" + a + b + '0' + '0').toCharArray();
System.out.print("Bchstb in Zahlen convert array:\t");
System.out.println(zwSpeicher);
//Arrays zusammenfügen
backupArray = endArray ;
int zaehler2=16;
while(zaehler2<22){
backupArray[zaehler2]=zwSpeicher[zaehler2-16];
zaehler2++;
System.out.println(backupArray);
}
System.out.print("Array Kontrolle vor mod.:\t");
System.out.println(backupArray); //Control
System.out.println("Ende");
}
}
Zuletzt bearbeitet: