# char array drehen



## xXmyselfXx (16. Feb 2015)

Hallo,

ich habe eine Frage zum Thema Arrays:

Ich soll in einem char array die zeichen tauschen: z.B.  ['a','b','c'] → ['c','b','a']
Das habe ich auch probiert, allerdings bekomme ich eine komische Ausgabe in der Eingabeaufforderung:





Was mache ich falsch?


----------



## funlow (16. Feb 2015)

Sollst du wirklich EIN Array umdrehen ? oder darfste das auch mit 2 Arrays machen, weil du es ja einfach probierst umgedreht in ein neues Array gespeichert hast.

Und du hast die Methode in die Main methode geschrieben musst es einfach in die public Klasse schreiben oder in ne neue Klasse die in der public klasse ist


----------



## xXmyselfXx (16. Feb 2015)

ich soll die Methode 

public char[] drehMichUm(char[] myArr){
}

erstellen und das gedrehte array zurückgeben.
wie, ist denke ich egal.
das außen herum ist auch nur für mich zum testen.

danke für deine rückmeldung


----------



## xXmyselfXx (16. Feb 2015)

also vielen dank.
hat jetzt folgendermaßen geklappt:



gibt es eine einfachere möglichkeit, oder ist das so grob das, was in der klausur erwartet wird?


----------



## funlow (16. Feb 2015)

Also ich persönlich würde das ohne ein Zweites Array machen sparste Speicher mit, was zwar nur größeren Programmen wichtig ist aber trotzdem ne bessere Möglichkeit meines Erachtens ist. 

würdest statt nem kompletten Array nur mit einer Variable arbeiten die du zum zwischenspeichern nutzt. würde dann wie folgt am laufen:
1. den Wert von den index 0 vom array in der tmp Variable.
2. letzten Wert des Arrays im ersten des Arrays abspeichern.
3. tmp Variable im letzten Feld abspeichern. 

selbes mit dem letzten vorletzten etc ...


----------



## xXmyselfXx (16. Feb 2015)

das bekomme ich irgendwie nicht hin.
denn in der mitte muss er ja aufhören, sonst dreht der das char wieder, wie es vorher war.
die dafür notwendige? while schleife schaffe ich aber leider nicht...


----------



## Flown (17. Feb 2015)

Dann läuft deine Schleife eben nur bis zur Mitte.


----------



## funlow (17. Feb 2015)

Machste halt mit ner extra Bedingung in der Schleife
 if ( counter == array.length-counter) { return array;}.
Musste garnicht mit einer while schleife machen kannst es schon bei der for-schleife belassen. Und du brauchst noch den Basisfall das wenn die beiden nebeneinander liegen beziehungsweise sich überholen, dass du dann die Schleife auch abbrichst.


----------

