Java :: Aufgabe #199 :: Lösung #2
2 Lösungen

#199
Einfacher Namensgenerator
Anfänger - Java
von Exception
- 30.05.2018 um 15:23 Uhr
Schreibe ein Programm, welches zwei Textdateien (zb Vorname.txt, Nachname.txt) Zeile für Zeile in ein Array lädt.
Gebe dann eine zufällige Kombination aus Vornamen und Nachnamen aus.
Gebe dann eine zufällige Kombination aus Vornamen und Nachnamen aus.
#2

von nOrdan (1160 Punkte)
- 09.06.2019 um 22:41 Uhr
Anmerkung: Habe noch die Möglichkeit eingebaut zwischen weiblich und männlich zu wählen.
Java-Code

import java.io.FileReader; import java.io.BufferedReader; import java.io.IOException; import Methodensammlung.Methoden; /** * Ein zufälliger Name wird generiert. Man kann weiblich oder männlich wählen, wobei es von beiden 500 verschiedene Namen gibt. Es gibt 1000 verschiedene Nachnamen. * * @author (nOrdan) * @version (09.06.2019) */ public class Generator { private static final String [] maennlicheVornamen = new String [500]; private static final String [] weiblicheVornamen = new String [500]; private static final String [] nachnamen = new String [1000]; Methoden m = new Methoden(); public static void main(String [] args) throws IOException { FileReader fmv = new FileReader("Textfiles/männlicheVornamen.txt"); BufferedReader bmv = new BufferedReader(fmv); for (int i = 0; i < 500; i++) { maennlicheVornamen[i] = bmv.readLine(); } FileReader fwv = new FileReader("Textfiles/weiblicheVornamen.txt"); BufferedReader bwv = new BufferedReader(fwv); for (int y = 0; y < 500; y++) { weiblicheVornamen[y] = bwv.readLine(); } FileReader fn = new FileReader("Textfiles/nachnamen.txt"); BufferedReader bn = new BufferedReader(fn); for (int z = 0; z < 1000; z++) { nachnamen[z] = bn.readLine(); } Generator g = new Generator(); g.inputs(); } private void inputs() { boolean valid1 = false; while (valid1 == false) { String input1 = m.userInput("Geben sie an ob sie einen weiblichen Vornamen (w) oder einen männlichen Vornamen (m) haben wollen"); if (input1 == null) { System.exit(0); } else if (input1.isEmpty() == true) { m.errorMessage("Bitte geben sie etwas ein","No input"); continue; } input1 = input1.toLowerCase().replaceAll("\\s+",""); if (input1.equals("w") || input1.equals("m")) { valid1 = true; generieren(input1); } else { m.errorMessage("Geben sie bitte nur w oder m ein","Invalid input"); continue; } } } private void generieren(String art) { String name = ""; if (art.equals("w")) { name += weiblicheVornamen[roll500()]; } else { name += maennlicheVornamen[roll500()]; } name += " "; name += nachnamen[roll1000()]; m.informationMessage("Ihr zufällig generierter Name ist " + name,"Generierter Name"); } private int roll500() { return (int) (Math.random() * 499); } private int roll1000() { return (int) (Math.random() * 999); } }
Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1