Как создать генератор имен Java с помощью цикла for

Мне нужно создать генератор имен, который использует циклы for и выбор if / else для создания имени. Ввод будет сохранен в отдельном символе [] для каждого из четырех введенных вами слов.

В настоящее время я в растерянности, пока я только закодировал нижеприведенное, но он не используется для циклов или массивов.

import java.util.Scanner;

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

        Scanner input = new Scanner(System.in);

        System.out.printf("Enter your first name: ");

        String firstname = input.nextLine();

        firstname = firstname.substring(0,3);
        System.out.printf("Enter your last name: ");

        String lastname = input.nextLine();
        lastname = lastname.substring(0,2);

        System.out.printf("Enter your mother's maiden name: ");
        String mothersname = input.nextLine();
        mothersname = mothersname.substring(0,2);

        System.out.printf("Enter the name of the city in which you were born: ");
        String cityname = input.nextLine();
        cityname = cityname.substring(0,3);

        String GenFirstName = (firstname  + lastname); 
        String GenLastName = (mothersname + cityname);
        System.out.println("May the force be with you, " + GenFirstName + " " + GenLastName );
    }

}

Не могли бы вы представить пример ввода и ожидаемого вывода для этой программы. Это поможет людям понять, что вы пытаетесь сделать.

Garreth Golding 27.04.2018 22:52
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
2
1
303
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я не совсем уверен, что именно вам нужно на самом деле, но это то, что я придумал.

import java.util.Scanner;

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

    Scanner input = new Scanner(System.in);

    System.out.printf("Enter your first name: ");
    char[] firstname;
        firstname = input.next().toCharArray();

    System.out.printf("Enter your last name: ");
    char[] lastname;
    lastname = input.next().toCharArray();

    System.out.printf("Enter your mother's maiden name: ");
    char[] mothersname;
    mothersname = input.next().toCharArray();

    System.out.printf("Enter the name of the city in which you were born: ");
    char[] cityname;
    cityname = input.next().toCharArray();

    String GenFirstName = "";
    String GenLastName = "";

    for(int count = 0; count <= 3; count++){
        GenFirstName += firstname[count];
        GenLastName += mothersname[count];
    }

    for(int count = 0; count <= 3; count++){
        GenFirstName += lastname[count];
        GenLastName += cityname[count];
    }

    System.out.println("May the force be with you, " + GenFirstName + " " + GenLastName );
}

}

ОБНОВИТЬ Вот версия аргументов командной строки.

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

    char[] firstname;
        firstname = args[0].toCharArray();

    char[] lastname;
    lastname = args[1].toCharArray();

    char[] mothersname;
    mothersname = args[2].toCharArray();

    char[] cityname;
    cityname = args[3].toCharArray();

    String GenFirstName = "";
    String GenLastName = "";

    for(int count = 0; count <= 3; count++){
        GenFirstName += firstname[count];
        GenLastName += mothersname[count];
    }

    for(int count = 0; count <= 3; count++){
        GenFirstName += lastname[count];
        GenLastName += cityname[count];
    }

    System.out.println("May the force be with you, " + GenFirstName + " " + GenLastName );
}

}

Я бы сделал это так, исходя из того, что вы уже сказали. Где вы сказали использовать аргументы командной строки?

RyanJ 27.04.2018 23:21

Вот так! Добавил его к исходному ответу. Не забудьте принять мой ответ :)

RyanJ 27.04.2018 23:44

Как вы сейчас в него входите?

RyanJ 28.04.2018 00:31

Какую ошибку вы получаете?

RyanJ 28.04.2018 00:49

java.lang.ArrayIndexOutOfBoundsException: 1 в NameGenerator.main (NameGenerator.java:10)

praiseodin 28.04.2018 00:54

Фамилия, которую вы используете, не превышает 4 символов. Поскольку в коде написано «for (int count = 0; count <= 3; count ++)», он повторяется 4 раза и пытается получить 4-й символ параметра. Поэтому в зависимости от того, сколько символов вы хотите получить из параметров, вы должны изменить «<= 3» на другое значение, например «<3».

RyanJ 28.04.2018 01:04

Не беспокойся об этом. Не могли бы вы показать мне, какие именно команды вы вводите в командной строке?

RyanJ 28.04.2018 01:16

Хм, я не знаком с BlueJ ... Попробуйте заключить в кавычки каждый параметр и разделить их запятыми, например: {"John", "Doe", "Smith", "Toronto"}

RyanJ 28.04.2018 01:26

Пожалуйста. Я думаю, что простой способ сделать это - указать фамилию и название города: lastname = args [1] .toLowerCase (). ToCharArray (); и название города = аргументы [3] .toLowerCase (). toCharArray (); Таким образом, когда он заполняет область, вторая половина имен все в нижнем регистре. Может быть другой способ сделать это, но я не уверен.

RyanJ 28.04.2018 01:58

В каком порядке вы вводите данные?

RyanJ 30.04.2018 21:16

Другие вопросы по теме