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



## julius92 (18. Jun 2014)

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?


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

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

	}

}
```


```
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:

```
Original:
BAUM
-------------
Verändert:
Exception in thread "main" java.lang.NullPointerException
	at SubInheri.printArr(SubInheri.java:9)
	at SubInheri.main(SubInheri.java:23)
```


----------



## njans (18. Jun 2014)

```
char charArray2[];
```

Erstmal solltest du eher schreiben:


```
char[] charArray2;
```

Dann initialisiert du die variable nie, die ist somit immer null.
Wenn dann

```
charArray[i] = charArray2[j];
```
aufgerufen wird, fliegt die NPE.


----------



## julius92 (18. Jun 2014)

okay, danke erstmal!


```
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
```


----------



## julius92 (18. Jun 2014)

habs geschafft:


```
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]);
			}
		}
	}
```


----------

