Java Problem mit einer Methode

10/20/2011 16:14 nekii3#1
Hi, ich habe hier ein Problem mit der Methode umdrehen... sie funktioniert nicht und ich weiß nicht was man da noch machen könnte

Code:
public class Zahlenarray {
	private int[] zahlen;


	public Zahlenarray() {
		zahlen = new int[5];
		for(int i = 0; i<5;i++) {
			zahlen[i] = (int)(Math.random()*10+0);
		}
	}
		public Zahlenarray(int a) {
			a = 3;
			zahlen = new int[a];
			//for(int i = 0;i< anzahl;i++) {
				//zahlen[i] = (int)(Math.random()*10+0); // nur als Kommentar um zu testen ob array umgedreht wird
			//
			zahlen[0] =  4;
			zahlen[1] = 42;
			zahlen[2] = 9;
			}
		//}	
		public void zufallsArray (int anzahl) {
			int[] a = new int[anzahl];  // ich weiß es geht auch einfacher :) analog zu Konstruktor mit Parameter
			for(int i = 0; i<anzahl;i++) {
				a[i] = (int)(Math.random()*10+0);
				
				 this.zahlen = a;

			}
			
		}
		public  String arrayToText() {
			
			String a = " ";
			for(int i = 0; i < zahlen.length;i++) {
				a += (zahlen[i]+",");
			}
			return a;	
		}
		public void umdrehen() {
	        int anzahl = zahlen.length;
			int[] b = new int[anzahl];
			for (int i=0;i<anzahl;i++) {
				b[b.length-i-1]= zahlen[i];
							
			}
			
		}

}

Code:
import javax.swing.JOptionPane;


public class Teste {
	public static void main( String[] args) {

		String ein = JOptionPane.showInputDialog("Bitte Anzahl eingeben");
		int a = Integer.parseInt(ein);

		Zahlenarray c = new Zahlenarray(a);
		//c.zufallsArray(a); // falls beim Objekt kein Parameter und diese Zeile aktiv, dann verwendet er diese Art von setter Methode(zufallsArray)
		c.umdrehen();
		String s = c.arrayToText();


		System.out.println(s);


	}


}
mfg
10/20/2011 16:40 XxharCs#2
Code:
public void umdrehen() {
	        int anzahl = zahlen.length;
			int[] b = new int[anzahl];
			for (int i=0;i<anzahl;i++) {
				b[(b.length-(i+1))]= zahlen[i]; // b.lenth-(i+1)
							
			}
			
		}
edit: naja iwie fail D: man könnte reversen(aber naja, u know) :P
10/20/2011 16:59 nekii3#3
das bringt doch nichts
10/21/2011 11:29 Muddy Waters#4
Das Umdrehen an sich sollte so funktionieren. Das einzige Problem ist, dass du zwar dein Zahlen Array in umgekehrter Reihenfolge im temporären Integer Array b speicherst, danach aber nichts weiter mit b machst.

Du hast schlicht vergessen, dein temporäres Array b nach dem Umdrehen dem Memberobjekt zahlen zuzuweisen. ;)

Die lokale Variable anzahl ist übrigens unnötig, du könntest auch einfach direkt zahlen.length verwenden.
10/21/2011 12:42 nekii3#5
thx :) jetzt gehts wunderbar... dummer Fehler :/
ich weiß das anzahl unnötig ist, aber ich habe das gemacht das es übersichtlicher (für mich) ist