这是我目前的代码,我在删除姓名以及名称中包含的网络和总信息方面遇到了麻烦。任何帮助将不胜感激
public static int removeName(String[] nameArray,
int[] grossArray, int[] netArray, int counter) {
Scanner keyboard = new Scanner(System.in);
String name;
int nameSearch;
System.out.println("Please enter the name you would like to remove.");
name = keyboard.nextLine();
nameSearch = searchArray(nameArray, name);
if (nameSearch != -1) {
nameArray[nameSearch] = name;
counter--;
} else {
System.out.println("That name is not on the list");
}
return counter;
}
代码运行并且没有错误。当代码运行时,它只是编辑我键入的名称,具体取决于我使用的大小写格式(大写/小写)。我需要此代码来删除名称和与之关联的信息。删除时我还需要列表向上移动,所以如果我删除Bob例如并且Jen在下面,那么Bob Jen会删除Bob,因为他被删除了。我不允许使用数组列表。
答案 0 :(得分:0)
if (nameSearch != -1) {
nameArray[nameSearch] = name;
counter--;
} else {
System.out.println("That name is not on the list");
}
return counter;
为什么要将nameArray [nameSearch]设置为name?你不想删除nameArray [nameSearch]中的内容吗?
如果你想做什么,你可以暂时将nameArray转换为ArrayList并删除nameSearch索引处的内容。像这样:
List<String> nameArrayList = new ArrayList<String>(Arrays.asList(nameArray));
nameArrayList.remove(nameSearch);
nameArray = nameArrayList.toArray();
如果你这样做,你可以考虑在整个函数中将nameArray保持为arrayList。