我有一份学校作业,但我被卡住了,可以使用一些技巧。
任务是我需要制作一个数组,让用户通过使用扫描仪和循环将数据放入数组中。如果用户在扫描仪中放入空字符串,则扫描仪应停止并打印出阵列。此外,数组的长度不能超过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));