java数组出现问题.使其具有一定的大小,并让用户向数组输入数据



我有一份学校作业,但我被卡住了,可以使用一些技巧。

任务是我需要制作一个数组,让用户通过使用扫描仪和循环将数据放入数组中。如果用户在扫描仪中放入空字符串,则扫描仪应停止并打印出阵列。此外,数组的长度不能超过25。

public class invoerOpslaan {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String[] arrayList = new String[25];
String input;
int i = 0;
for (input = scanner.nextLine(); !input.isEmpty(); input = scanner.nextLine()) {
arrayList[i] = input;
i++;
}
System.out.println(arrayList[]);
}

我将数组设置为25长度,但我如何才能让用户在数组中放入15个字符串,使数组为15而不是25。如果用户将第25个字符串放入阵列中,它将自动停止扫描仪并打印出阵列。

如果不允许使用List,则循环遍历数组中包含值的每个元素,并使用所有这些元素创建一个新数组(大小为i)。

Scanner scanner = new Scanner(System.in);
String[] arrayList = new String[25];
String input;
int i = 0;
for (input = scanner.nextLine(); (!input.isEmpty() && i < 25); input = scanner.nextLine()) {
arrayList[i] = input;
i++;
}
String[] newArrayList = new String[i];
int index = 0;
for (String element : arrayList) {
if (element == null)
continue;
newArrayList[index] = element;
index++;
}

您可以使用ArrayList为代码提供一个动态大小的数组。

Scanner scanner = new Scanner(System.in);
ArrayList<String> arrayList = new ArrayList<>();
String input;
int i = 0;
for (input = scanner.nextLine(); !input.isEmpty(); input = scanner.nextLine()) {
arrayList.add(input);
i++;
}
System.out.println(arrayList);

System.out.println会给你这样的输出:

[Hello, World!]

如果不能使用List,则可以使用Arrays.copyOf()i将用户输入的元素复制到新的Array中。此外,您实际上并没有检查以确保i小于25。确保您在循环中进行检查:

for (input = scanner.nextLine(); !input.isEmpty() && i < 25; input = scanner.nextLine()) {
arrayList[i] = input;
i++;
}
String[] temp = Arrays.copyOf(arrayList, i);
System.out.println(Arrays.toString(temp));

相关内容

  • 没有找到相关文章

最新更新