char-Array rückwärts ausgeben und in neues Char-Array speichern

julius92

Mitglied
Hallo,

in der Unterklasse SubChars mit der Variablen charArray2[] möchte ich die Methode printArray() überschreiben, so dass darin die Buchstaben aus charArray[] in der umgekehrten Reihenfolge in charArray2[] kopiert und dann ausgegeben werden, also so: charArray2[] = M U A B

Die Ausgabe liefert mir aber immer ein Fehler. Ich komme einfach auf keine Lösung. Hat jmd Ideen?

Java:
public class Chars {
	char charArray[] = { 'B', 'A', 'U', 'M' };

	void printArray() {
		for (int i = 0; i < charArray.length; i++)
			System.out.print(charArray[i]);

	}

}

Java:
public class SubChars extends Chars {
	char charArray2[];

	void printArray() {

		for (int i = charArray.length - 1; i >= 0; i--) {
			for (int j = 0; j <= charArray.length - 1; j++) {

				charArray[i] = charArray2[j];
				System.out.print(charArray2[j]);
			}
		}
	}

	public static void main(String args[]) {
		System.out.println("Original:");
		Chars c = new Chars();
		c.printArray();
		System.out.println();
		System.out.println("-------------");
		System.out.println("Verändert:");
		SubChars sc = new SubChars();
		sc.printArray();

	}
}

Ausgabe:
Java:
Original:
BAUM
-------------
Verändert:
Exception in thread "main" java.lang.NullPointerException
	at SubInheri.printArr(SubInheri.java:9)
	at SubInheri.main(SubInheri.java:23)
 
Java:
char charArray2[];

Erstmal solltest du eher schreiben:

Java:
char[] charArray2;

Dann initialisiert du die variable nie, die ist somit immer null.
Wenn dann
Java:
charArray[i] = charArray2[j];
aufgerufen wird, fliegt die NPE.
 
okay, danke erstmal!

Java:
	char[] charArray2 = new char[4]; //meinst du so? Fehler ist dann weg, das gedrehte Array wird aber immer noch nicht ausgeben

//	char[] charArray2 = { 'S', 'A', 'N', 'D' }; //Das meinst du nicht oder? will ja erstmal eigentlich ein leeres Array, das dann mit charArray gefüllt wird
 
habs geschafft:

Java:
public class SubChars extends Chars {
	char[] charArray2 = new char[4];

	void printArray() {

		for (int i = charArray.length - 1; i >= 0; i--) {
			for (int j = charArray.length - 1; j <= charArray.length - 1; j++) {

				charArray2[j] = charArray[i];
				System.out.print(charArray2[j]);
			}
		}
	}
 

Zurück
Oben