我在用户输入数据中填充String
数组时遇到问题。以下是我的问题的一个简单示例:
import java.util.Scanner;
public class TestArray {
public static void main(String[] args){
Scanner input = new Scanner(System.in);
System.out.println("Enter a number between 1 and 5");
int number = input.nextInt();
System.out.println("Now enter " + number + " names");
String names = input.next();
String[] nameList = new String[number];
for(int i = 0; i < number; i++){
nameList[i] = input.next();
System.out.println(nameList[i]);
}
}
}
我不知道为什么这只是输出输入的姓氏。我最终要找的是打印出每个名字。我也尝试使用input.nextLine()
无效。
任何提示或指示都将不胜感激。
答案 0 :(得分:3)
输入名称后,只需要一个单独的循环即可将它们全部打印出来:
import java.util.Scanner;
public class TestArray {
public static void main(String[] args){
Scanner input = new Scanner(System.in);
System.out.println("Enter a number between 1 and 5");
int number = input.nextInt();
System.out.println("Now enter " + number + " names");
//NOTE: You may want to remove this line since it will mess up your data.
//String names = input.next();
String[] nameList = new String[number];
for(int i = 0; i < number; i++){
nameList[i] = input.next();
}
//print separate here.
System.out.println("Here are the names you entered: ");
for(int i = 0; i<number; i++){
System.out.println(nameList[i]);
}
}
}
答案 1 :(得分:0)
的目的是什么?
String names = input.next();
您根本不使用names
并且因为它而在数字后面捕获下一个输入。
如果删除它就应该有效......
答案 2 :(得分:0)
您的第一次input.next()
电话(在提示之后,“现在输入X名称”)正在扭曲您的数据。只需删除它。
public class TestArray {
public static void main(String[] args){
Scanner input = new Scanner(System.in);
System.out.println("Enter a number between 1 and 5");
int number = input.nextInt();
System.out.println("Now enter " + number + " names");
String[] nameList = new String[number];
for(int i = 0; i < number; i++){
nameList[i] = input.next();
System.out.println(nameList[i]);
}
}
}
答案 3 :(得分:0)
该行
String names = input.next();
导致你的问题。如果你把它拿出来,程序就会按照你的描述执行。或者,您可以在一个循环中填充数组,然后在打印它们之后循环遍历列表。这取决于你究竟想要做什么。
import java.util.Scanner;
public class test{
public static void main(String[] args){
Scanner input = new Scanner(System.in);
System.out.println("Enter a number between 1 and 5");
int number = input.nextInt();
System.out.println("Now enter " + number + " names");
//String names = input.next();
String[] nameList = new String[number];
for(int i = 0; i < number; i++){
nameList[i] = input.next();
System.out.println(nameList[i]);
}
}
}