Это базовая программа сортировки имен. Все работает, за исключением того, что пользователь не может ввести имя. Это код:Сканер пропускает первый вход в петлю Java
public static void main(String args[]){
Scanner sc = new Scanner(System.in);
System.out.println("How many names do you want to sort");
int num = sc.nextInt();
String[] names = new String[num];
for (int x = 0; x < names.length; x++){
int pos = x+1;
System.out.println("Enter name " + pos);
//String temp = sc.nextLine();
names[x] = sc.nextLine();
}
String sortedArray[] = sort(names);
for (int i = 0; i < sortedArray.length; i++){
System.out.print(sortedArray[i] + " ");
}
}
Обновления: Я изменил код, если это первый раз, он вызывает sc.nextLine(), а затем задает вход, равные имена [0] Одна из проблем, с .next() заключается в том, что если имя человека составляет 2 слова, он рассматривает его как два имени. Это обновленный код, который работает:
public static void main(String args[]) {
Scanner sc = new Scanner(System.in);
System.out.println("How many names do you want to sort");
int num = sc.nextInt();
String[] names = new String[num];
//String[] temp = new String[names.length];
for (int x = 0; x < names.length; x++) {
int pos = x + 1;
if (x == 0) {
System.out.println("Enter name 1");
sc.nextLine();
names[0] = sc.nextLine();
} else {
System.out.println("Enter name " + pos);
//String temp = sc.nextLine();
names[x] = sc.nextLine();
}
}
String sortedArray[] = sort(names);
for (int i = 0; i < sortedArray.length; i++) {
System.out.print(sortedArray[i] + " ");
}
}
У вас есть свой ответ, если нет, то, пожалуйста, напишите свой ответ так, что другие могут быть использованы из него. stackoverflow.com/help/accepted-answer – hagrawal