[Java] Problem mit Array

10/17/2011 17:57 nekii3#1
Hallo lieber User !
Ich habe hier ein Programm das ein Array mit Zufallszaheln befüllt, und es dann mit einer anderen Methode durch Beistriche trennt. Mein Problem liegt in der Testklasse, da er mir da zwar die Ziffern durch Beistriche trennt, diese aber nicht mehr zufällig sondern alle gleich sind.
z.b eingabe : 5 ausgabe : 1,1,1,1,1,


Code:
public class ArrayMethoden {
	
	public static int[] zufallsArray (int anzahl) {
		int[] a = new int[anzahl];
		for(int i = 0; i<anzahl;i++) {
			a[i] = (int)(Math.random()*anzahl*2);
			
			}
		return a;
	}
	public static String arrayToText(int[] c) {
		int anz = c.length;
		String a = "";
		for(int i = 0; i < anz;i++) {
			 a = c[i]+",";
		}
		return a;							

	}

}
Code:
import javax.swing.JOptionPane;


public class Test {
	public static void main( String[] args) {
		
		String ein = JOptionPane.showInputDialog("Bitte Anzahl eingeben");
		int a = Integer.parseInt(ein);

		int[] b = ArrayMethoden.zufallsArray(a);
		String t = ArrayMethoden.arrayToText(b);
		for(int i = 0; i< a;i++) {

			System.out.print(t);

		}
	}

}
mfg
10/17/2011 18:23 NikM#2
So gehts:
Code:
public class ArrayMethoden {
	
	public static int[] zufallsArray (int anzahl) {
		int[] a = new int[anzahl];
		for(int i = 0; i<anzahl;i++) {
			a[i] = (int)(Math.random()*anzahl*2);
			
			}
		return a;
	}
	public static String arrayToText(int[] c) {
		int anz = c.length;
		String a = "";
		for(int i = 0; i < anz;i++) {
			 [COLOR="Green"]a += (c[i]+",");[/COLOR] //Nicht immer wieder neu beschreiben sondern erweitern
		}
		return a;							

	}

}
Code:
import javax.swing.JOptionPane;

public class cMain {
	public static void main( String[] args) {
		ArrayMethoden Arrays = new ArrayMethoden (); [COLOR="Lime"]//Instanz erstellen ? O.O[/COLOR]
		String ein = JOptionPane.showInputDialog("Bitte Anzahl eingeben");
		int a = Integer.parseInt(ein);

		int[] b = Arrays.zufallsArray(a);
		String t = Arrays.arrayToText(b);
		[COLOR="Lime"]//for(int i = 0; i< a;i++) {[/COLOR]

			System.out.print(t);

		[COLOR="Lime"]//} Schleife nicht nötig[/COLOR]
	}

}
Du hast den String nicht immer um die Zahl und das Komma erweitert sondern immer wieder neu beschrieben! Und dann hast du das ganze mit einer Schleife mehrmals ausgegeben!
Deswegen hattest du immer mehrmals die selbe Zahl!


MfG NikM
10/17/2011 18:31 nekii3#3
THX !!! :handsdown:

Achja die
Code:
ArrayMethoden Arrays = new ArrayMethoden ();
braucht man glaub ich nicht, da die Methoden eine Klassenmethoden ist
10/17/2011 18:41 NikM#4
np
falls du mal wieder probleme hast schreib mich ruhig an :D
10/17/2011 19:45 nekii3#5
mach ich :)
10/17/2011 21:13 XxharCs#6
Quote:
Originally Posted by nekii3 View Post
THX !!! :handsdown:

Achja die
Code:
ArrayMethoden Arrays = new ArrayMethoden ();
braucht man glaub ich nicht, da die Methoden eine Klassenmethoden ist
zufallsArray & arrayToString sind statisch(wie du schon sagst Klassenmethoden), also brauchst kein Objekt erstellen ;)

hättest du Objektmethoden, also, public int[] zufallsArray(int anzahl) dann müsstest dus machen :P^^