Doppelte namen bei random

kill_dmp

Aktives Mitglied
hi all
ich habe bei meinen random system ein prob
der nachname wird immer gleich ausgegeben
zb.
Code:
 der mann heist Tim Handykatzeschütler
 die frau heist Lara Handykatzeschütler

hier sind die klassen
Java:
package DimeCity;

public class DimeCity {

	/**
	 * @param args
	 */
	public static void main(String[] args) {

		Personal personal = new Personal();
		Personal personal1 = new Personal();
		personal.geschlecht = true;
		personal.neuerName();
		System.out.println(" der mann heist " +personal.name+personal.nachName);
		personal1.geschlecht = false;
		personal1.neuerName();
		System.out.println(" die frau heist " +personal1.name +personal.nachName);
	}

}

Java:
package DimeCity;

public class Personal extends Namensgebung{
	Namensgebung namensgebung = new Namensgebung();
	
	int fertigkeit1;
	int fertigkeit2;
	int fertigkeit3;
	int fertigkeit4;
	int fertigkeit5;
	int fertigkeit6;
	int schwirigkeitsgrad;
	int aussehen;
	int problem1;
	int problem2;
	
	String name;
	String nachName;
	String rang;
	String geschiechte;
	
	boolean geschlecht;
	
	double gehalt;
void neuerName(){
	namensgebung.vorNameGeben(geschlecht);
	name = namensgebung.vorName;
	namensgebung.nachNamenGeben();
	nachName = namensgebung.nachName;
}
		

	

}

Java:
package DimeCity;

import java.util.Random;

public class Namensgebung {

	Random mZufall = new Random();
	Random fZufall = new Random();
	Random nZufall = new Random();
	

	String vorName;
	String nachName;
	String teil1;
	String teil2;
	String teil3;
	
	String n1 = "Hund";
	String n2 = "Katze";
	String n3 = "Baum";
	String n4 = "Vogle";
	String n5 = "Hase";
	String n6 = "Heizung";
	String n7 = "Topf";
	String n8 = "Kiste";
	String n9 = "Uhr";
	String n10 = "Betten";
	String n11 = "Flaschen";
	String n12 = "Ketten";
	String n13 = "Schlüssel";
	String n14 = "Tisch";
	String n15 = "Dekel";
	String n16 = "Spiel";
	String n17 = "Boxen";
	String n18 = "Boden";
	String n19 = "Pferde";
	String n20 = "Armeisen";
	String n21 = "Blumen";
	String n22 = "Handy";
	String n23 = "Brillen";
	String n24 = "Löffel";
	String n25 = "Zigaretten";
	
	String bn1 = "hund";
	String bn2 = "katze";
	String bn3 = "baum";
	String bn4 = "vogle";
	String bn5 = "hase";
	String bn6 = "heizung";
	String bn7 = "topf";
	String bn8 = "kiste";
	String bn9 = "uhr";
	String bn10 = "betten";
	String bn11 = "flaschen";
	String bn12 = "ketten";
	String bn13 = "schlüssel";
	String bn14 = "tisch";
	String bn15 = "dekel";
	String bn16 = "spiel";
	String bn17 = "boxen";
	String bn18 = "boden";
	String bn19 = "pferde";
	String bn20 = "armeisen";
	String bn21 = "blumen";
	String bn22 = "handy";
	String bn23 = "brillen";
	String bn24 = "löffel";
	String bn25 = "zigaretten";
	
	String t1 = "trinken";
	String t2 = "lecker";
	String t3 = "esser";
	String t4 = "zeiger";
	String t5 = "hüpfer";
	String t6 = "klatscher";
	String t7 = "tänzer";
	String t8 = "fliger";
	String t9 = "bediener";
	String t10 = "pickzer";
	String t11 = "anmacher";
	String t12 = "umarmer";
	String t13 = "schläger";
	String t14 = "stößer";
	String t15 = "dreher";
	String t16 = "spieler";
	String t17 = "hörer";
	String t18 = "fäller";
	String t19 = "flüsterer";
	String t20 = "riescher";
	String t21 = "gucker";
	String t22 = "schütler";
	String t23 = "zerquester";
	String t24 = "bieger";
	String t25 = "raucher";
	

	String f1 = "Mia ";
	String f2 = "Emma ";
	String f3 = "Anna ";
	String f4 = "Lea ";
	String f5 = "Leonie ";
	String f6 = "Lina ";
	String f7 = "Marie ";
	String f8 = "Sophia ";
	String f9 = "Lena ";
	String f10 = "Emilie ";
	String f11 = "Lilli ";
	String f12 = "Laura ";
	String f13 = "Sophie ";
	String f14 = "Lara ";
	String f15 = "Amelie ";
	String f16 = "Emilia ";
	String f17 = "Nele ";
	String f18 = "Johanna ";
	String f19 = "Sarah ";
	String f20 = "Luisa ";
	String f21 = "Maja ";
	String f22 = "Leni ";
	String f23 = "Clara ";
	String f24 = "Pia ";
	String f25 = "Rea ";

	String m1 = "Ben ";
	String m2 = "Leon ";
	String m3 = "Lucas ";
	String m4 = "Finn ";
	String m5 = "Jonas ";
	String m6 = "Maximilian ";
	String m7 = "Luis ";
	String m8 = "Paul ";
	String m9 = "Felix ";
	String m10 = "Luca ";
	String m11 = "Noah ";
	String m12 = "Tim ";
	String m13 = "Elias ";
	String m14 = "Max ";
	String m15 = "Julian ";
	String m16 = "Philip ";
	String m17 = "Moritz ";
	String m18 = "Niclas ";
	String m19 = "Alexander ";
	String m20 = "Jan ";
	String m21 = "Jacob ";
	String m22 = "Tom ";
	String m23 = "David ";
	String m24 = "Eric ";
	String m25 = "Fabian ";
	
	void nachNamenGeben(){
		int x;
		int y;
		int z;

		x = nZufall.nextInt(25);
		if (x == 0) {
			teil1 = n1;
		} else if (x == 1) {
			teil1 = n2;
		} else if (x == 2) {
			teil1 = n3;
		} else if (x == 3) {
			teil1 = n4;
		} else if (x == 4) {
			teil1 = n5;
		} else if (x == 5) {
			teil1 = n6;
		} else if (x == 6) {
			teil1 = n7;
		} else if (x == 7) {
			teil1 = n8;
		} else if (x == 8) {
			teil1 = n9;
		} else if (x == 9) {
			teil1 = n10;
		} else if (x == 10) {
			teil1 = n11;
		} else if (x == 11) {
			teil1 = n12;
		} else if (x == 12) {
			teil1 = n13;
		} else if (x == 13) {
			teil1 = n14;
		} else if (x == 14) {
			teil1 = n15;
		} else if (x == 15) {
			teil1 = n16;
		} else if (x == 16) {
			teil1 = n17;
		} else if (x == 17) {
			teil1 = n18;
		} else if (x == 18) {
			teil1 = n19;
		} else if (x == 19) {
			teil1 = n20;
		} else if (x == 20) {
			teil1 = n21;
		} else if (x == 21) {
			teil1 = n22;
		} else if (x == 22) {
			teil1 = n23;
		} else if (x == 23) {
			teil1 = n24;
		} else if (x == 24) {
			teil1 = n25;
		}
		
		y = nZufall.nextInt(25);
		if (x == 0) {
			teil2 = bn1;
		} else if (y == 1) {
			teil2 = bn2;
		} else if (y == 2) {
			teil2 = bn3;
		} else if (y == 3) {
			teil2 = bn4;
		} else if (y == 4) {
			teil2 = bn5;
		} else if (y == 5) {
			teil2 = bn6;
		} else if (y == 6) {
			teil2 = bn7;
		} else if (y == 7) {
			teil2 = bn8;
		} else if (y == 8) {
			teil2 = bn9;
		} else if (y == 9) {
			teil2 = bn10;
		} else if (y == 10) {
			teil2 = bn11;
		} else if (y == 11) {
			teil2 = bn12;
		} else if (y == 12) {
			teil2 = bn13;
		} else if (y == 13) {
			teil2 = bn14;
		} else if (y == 14) {
			teil2 = bn15;
		} else if (y == 15) {
			teil2 = bn16;
		} else if (y == 16) {
			teil2 = bn17;
		} else if (y == 17) {
			teil2 = bn18;
		} else if (y == 18) {
			teil2 = bn19;
		} else if (y == 19) {
			teil2 = bn20;
		} else if (y == 20) {
			teil2 = bn21;
		} else if (y == 21) {
			teil2 = bn22;
		} else if (y == 22) {
			teil2 = bn23;
		} else if (y == 23) {
			teil2 = bn24;
		} else if (y == 24) {
			teil2 = bn25;
		}
				
		z = nZufall.nextInt(25);
		if (x == 0) {
			teil3 = t1;
		} else if (z == 1) {
			teil3 = t2;
		} else if (z == 2) {
			teil3 = t3;
		} else if (z == 3) {
			teil3 = t4;
		} else if (z == 4) {
			teil3 = t5;
		} else if (z == 5) {
			teil3 = t6;
		} else if (z == 6) {
			teil3 = t7;
		} else if (z == 7) {
			teil3 = t8;
		} else if (z == 8) {
			teil3 = t9;
		} else if (z == 9) {
			teil3 = t10;
		} else if (z == 10) {
			teil3 = t11;
		} else if (z == 11) {
			teil3 = t12;
		} else if (z == 12) {
			teil3 = t13;
		} else if (z == 13) {
			teil3 = t14;
		} else if (z == 14) {
			teil3 = t15;
		} else if (z == 15) {
			teil3 = t16;
		} else if (z == 16) {
			teil3 = t17;
		} else if (z == 17) {
			teil3 = t18;
		} else if (z == 18) {
			teil3 = t19;
		} else if (z == 19) {
			teil3 = t20;
		} else if (z == 20) {
			teil3 = t21;
		} else if (z == 21) {
			teil3 = t22;
		} else if (z == 22) {
			teil3 = t23;
		} else if (z == 23) {
			teil3 = t24;
		} else if (z == 24) {
			teil3 = t25;
		}
		
		nachName= teil1+teil2+teil3;
	}

	void vorNameGeben(boolean x) {
		int frau;
		int mann;
		if (x == false) {
			frau = fZufall.nextInt(25);
			if (frau == 0) {
				vorName = f1;
			} else if (frau == 1) {
				vorName = f2;
			} else if (frau == 2) {
				vorName = f3;
			} else if (frau == 3) {
				vorName = f4;
			} else if (frau == 4) {
				vorName = f5;
			} else if (frau == 5) {
				vorName = f6;
			} else if (frau == 6) {
				vorName = f7;
			} else if (frau == 7) {
				vorName = f8;
			} else if (frau == 8) {
				vorName = f9;
			} else if (frau == 9) {
				vorName = f10;
			} else if (frau == 10) {
				vorName = f11;
			} else if (frau == 11) {
				vorName = f12;
			} else if (frau == 12) {
				vorName = f13;
			} else if (frau == 13) {
				vorName = f14;
			} else if (frau == 14) {
				vorName = f15;
			} else if (frau == 15) {
				vorName = f16;
			} else if (frau == 16) {
				vorName = f17;
			} else if (frau == 17) {
				vorName = f18;
			} else if (frau == 18) {
				vorName = f19;
			} else if (frau == 19) {
				vorName = f20;
			} else if (frau == 20) {
				vorName = f21;
			} else if (frau == 21) {
				vorName = f22;
			} else if (frau == 22) {
				vorName = f23;
			} else if (frau == 23) {
				vorName = f24;
			} else if (frau == 24) {
				vorName = f25;
			}
		}
		if (x == true) {
			mann = mZufall.nextInt(25);
			if (mann == 0) {
				vorName = m1;
			} else if (mann == 1) {
				vorName = m2;
			} else if (mann == 2) {
				vorName = m3;
			} else if (mann == 3) {
				vorName = m4;
			} else if (mann == 4) {
				vorName = m5;
			} else if (mann == 5) {
				vorName = m6;
			} else if (mann == 6) {
				vorName = m7;
			} else if (mann == 7) {
				vorName = m8;
			} else if (mann == 8) {
				vorName = m9;
			} else if (mann == 9) {
				vorName = m10;
			} else if (mann == 10) {
				vorName = m11;
			} else if (mann == 11) {
				vorName = m12;
			} else if (mann == 12) {
				vorName = m13;
			} else if (mann == 13) {
				vorName = m14;
			} else if (mann == 14) {
				vorName = m15;
			} else if (mann == 15) {
				vorName = m16;
			} else if (mann == 16) {
				vorName = m17;
			} else if (mann == 17) {
				vorName = m18;
			} else if (mann == 18) {
				vorName = m19;
			} else if (mann == 19) {
				vorName = m20;
			} else if (mann == 20) {
				vorName = m21;
			} else if (mann == 21) {
				vorName = m22;
			} else if (mann == 22) {
				vorName = m23;
			} else if (mann == 23) {
				vorName = m24;
			} else if (mann == 24) {
				vorName = m25;
			}
		}

	}
}
 
Das mag wohl daran liegen
[JAVA=17]
System.out.println(" die frau heist " +personal1.name +personal.nachName); //Your code
System.out.println(" die frau heist " +personal1.name +personal1.nachName);//Mit neuem Nachnamen[/code]

Aber davon abgesehen, würde ich mal empfehlen sich über arrays und Schleifen schlau zu machen, denn das die tipperei von n1...n25 und die daraus resultierenden if-else-Kaskaden Spaß macht kann ich nicht glauben.
 
spaß macht das 100% nicht aber nicht bin halt noch ein totaler anfänger und konnte mir nicht anders helfen ^^
und nach dem ich ca 300 tuts geguckt habe habe ich mir gedach das ich mit iwas anfangen muss ^^

vielen dank für die hilfe
 
Deine If Verzweigungen sind so schrecklich, dass ich dir das mal aufgeräumt hab.. vllt kannste damit ja was anfangen, mir war grad eh langweilig

Java:
import java.util.Random;


public class PersonGenerator {

	String[] mName = {"Michael", "Dieter", "Hans"};
	String[] wName = {"Lisa", "Hanna", "Eva"};
	String[] nName = {"Mueller", "Schmitz", "Fischer"};

	Random rand = new Random();
	
	public String getVorname(String gender)
	{
		if(gender.equalsIgnoreCase("m")) {
			return mName[rand.nextInt(mName.length)];
		}
		else if(gender.equalsIgnoreCase("w")) {
			return wName[rand.nextInt(wName.length)];
		}
		else {
			return "Gender wrong";
		}
	}
	
	public String getNachname()
	{
		return nName[rand.nextInt(nName.length)];
	}
}

Java:
import java.util.ArrayList;

public class Main {
	public static void main(String[] args) {
		
		PersonGenerator pg = new PersonGenerator();

		ArrayList<String> alleVorname = new ArrayList<String>();
		ArrayList<String> alleNachname = new ArrayList<String>();
		
		int i = 0;
		String nName;
		
		for(i = 0; i < 3; i++){
			alleVorname.add(pg.getVorname((i % 2 == 0) ? "m" : "w"));
			do {nName = pg.getNachname();} while(alleNachname.contains(nName));
			alleNachname.add(nName);			
		}
		
		for(int j = 0; j < i; j++)
			System.out.println(alleVorname.get(j) + " " + alleNachname.get(j));
		
	}
}

Ausgabe:
Java:
Michael Fischer
Hanna Schmitz
Hans Mueller

Vornamen können doppelt sein, Nachname nicht.

Grüße

Edit: Sollte jetzt wohl kein Problem sein die Arrays zu erweitern und nur btw. Falls du die bedingung der ersten for schleife höher als i < 3 stellst gibts eine endlosschelife, weil nur 3 Nachnamen im nName Array sind und da keine doppelt sein dürfen..
 
Zuletzt bearbeitet:

Zurück
Oben