gpt4 book ai didi

java - 学生阵列菜单

转载 作者:行者123 更新时间:2023-11-29 06:00:01 24 4
gpt4 key购买 nike

我正在编写一个菜单以将姓名存储到数组中,然后提供添加/删除学生和搜索特定学生的选项,但我似乎无法找到如何设置数组以便我可以使用它在其他选项中,因为,例如,我的代码只允许我在使用选项 1 时输入名称,但是当我选择选项 3 在数组中搜索名称时,它不会将这些名称保留在数组中,它只是显示对于数组中的每个槽都为 null。

我遇到的另一个问题是如何删除学生,显然如果名字在数组的末尾会很容易,但是如果名字在中间怎么办,我怎么能删除name,将所有其他名称向下移动一个位置,以便数组中没有间隙?

import java.util.Scanner;

public class Lab10Ex2 {

public static void main(String[] args) {
int choice = 0;
int[] stringArray = {};

do{

String[] stringarray = new String[20];

System.out.println("----------------MENU---------------");
System.out.println();
System.out.println("1. Add Students");
System.out.println("2. Delete Students");
System.out.println("3. Search for student");
System.out.println("4. Print all Students");
System.out.println("5. exit");

Scanner scanchoice = new Scanner(System.in);
choice = scanchoice.nextInt();

if (choice ==1){

Scanner scannames = new Scanner(System.in);

System.out.println("Please enter the student names into the array");

int i = 0;

for(i = 0; i<stringarray.length; i++){

String temp =scannames.nextLine();

stringarray[i]=temp.toLowerCase();

if(i==(stringarray.length-1)){
System.out.println("successfully filled up array fully");
System.out.println();
}
}
}

if(choice==2){

}

if(choice==3){

for(int p = 0; p<stringarray.length; p++){

System.out.println(stringarray[p]);

}
int x=0;
Scanner scannames1 = new Scanner(System.in);

System.out.println("Enter name of student you want to search for: ");
System.out.println();
String search=scannames1.nextLine();
String searchName=search.toLowerCase();

for(int p=0;p<20;p++){
if(searchName.equals(stringarray[p])){
x=1;

}
else{
x=0;
}
}

if(x==1){
System.out.println("We have a match in our database for "+ searchName);
}
else if (x==0){
System.out.println("No match for "+ searchName);
}
}

if (choice ==4){
System.out.println("List of names:");

for(int p = 0; p<stringarray.length; p++){
System.out.println(stringarray[p]);
}
}
}while(choice!=5);
}
}

最佳答案

    int choice = 0;
int[] stringArray = {};

do{

String[] stringarray = new String[20];

删除 int[] stringArray 行(您不要在任何地方引用它)。

String[] stringarray 向上移动到循环外。

至于删除,您要么必须自己编写代码(将数组中已删除项之后的所有内容向上移动),要么使用 Java 提供的集合类之一(而不是 native 数组),它处理删除你。

关于java - 学生阵列菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10538042/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com