Мне нужно создать генератор имен, который использует циклы 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 );
}
}




Я не совсем уверен, что именно вам нужно на самом деле, но это то, что я придумал.
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 );
}
}
Я бы сделал это так, исходя из того, что вы уже сказали. Где вы сказали использовать аргументы командной строки?
Вот так! Добавил его к исходному ответу. Не забудьте принять мой ответ :)
Как вы сейчас в него входите?
Какую ошибку вы получаете?
java.lang.ArrayIndexOutOfBoundsException: 1 в NameGenerator.main (NameGenerator.java:10)
Фамилия, которую вы используете, не превышает 4 символов. Поскольку в коде написано «for (int count = 0; count <= 3; count ++)», он повторяется 4 раза и пытается получить 4-й символ параметра. Поэтому в зависимости от того, сколько символов вы хотите получить из параметров, вы должны изменить «<= 3» на другое значение, например «<3».
Не беспокойся об этом. Не могли бы вы показать мне, какие именно команды вы вводите в командной строке?
Хм, я не знаком с BlueJ ... Попробуйте заключить в кавычки каждый параметр и разделить их запятыми, например: {"John", "Doe", "Smith", "Toronto"}
Пожалуйста. Я думаю, что простой способ сделать это - указать фамилию и название города: lastname = args [1] .toLowerCase (). ToCharArray (); и название города = аргументы [3] .toLowerCase (). toCharArray (); Таким образом, когда он заполняет область, вторая половина имен все в нижнем регистре. Может быть другой способ сделать это, но я не уверен.
В каком порядке вы вводите данные?
Не могли бы вы представить пример ввода и ожидаемого вывода для этой программы. Это поможет людям понять, что вы пытаетесь сделать.