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

2 Lösungen Lösungen öffentlich
#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.
#2
vote_ok
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.

Quellcode ausblenden 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

Bitte melden Sie sich an um eine Kommentar zu schreiben.
Kommentar schreiben