
java如何输入一个名字数组
用户关注问题
我想在Java程序中存储一组名字,应该如何声明和初始化一个字符串数组来保存这些名字?
声明和初始化名字数组的方法
在Java中,可以使用字符串数组来存储名字,声明方式为:String[] names;,初始化时可以直接指定元素,如String[] names = {"张三", "李四", "王五"};。也可以先声明数组大小再赋值,例如String[] names = new String[3]; 然后分别给每个元素赋值。
我希望在Java程序运行时,让用户通过控制台输入多个名字,并将它们保存到数组中,具体应该怎么做?
使用Scanner读取控制台输入并保存到数组
可以使用Scanner类读取用户输入。首先定义一个字符串数组用于保存名字,然后通过循环调用Scanner的nextLine()方法读取每个名字,依次存入数组中。示例代码:
Scanner sc = new Scanner(System.in);
String[] names = new String[5];
for(int i = 0; i < names.length; i++) {
System.out.print("请输入第" + (i+1) + "个名字:");
names[i] = sc.nextLine();
}
sc.close();
这样就能实现从控制台输入名字数组。
如果我不知道具体将输入多少个名字,能否用Java实现动态存储?
使用ArrayList实现动态名字存储
当名字数量未知时,使用ArrayList比固定大小的数组更灵活。ArrayList可以动态扩容。示例用法:
Scanner sc = new Scanner(System.in);
ArrayList nameList = new ArrayList<>();
while(true) {
System.out.print("请输入名字(输入exit结束):");
String input = sc.nextLine();
if("exit".equalsIgnoreCase(input)) {
break;
}
nameList.add(input);
}
sc.close();
然后可以将ArrayList转换为数组,如String[] names = nameList.toArray(new String[0]);