50٪ تخفیف روی تمام دوره‌ها!
پایان تخفیف تا:
مشاهده دوره‌ها
0

چگونگی حذف یه عضو آرایه در جاوا

سلام من یه برنامه نوشتم که قراره اطلاعات تعدادی دانشجو رو بگیره و در اخر چاپ کنه.

قراره دستورات زیر رو بگیره :

add: برای اضافه کردن یک Student

delete: برای پاک کردن یک Student توسط studentNumber

show: برای نشان دادن اطلاعات تمام دانش آموزان

exit: برای پایان برنامه

مشکلم تو قسمت delete هست که نمیدونم چطوری وقتی که شماره رو تطبیق داد و پیدا کرد، اون عضو رو از آرایه حذف کنه و دیگه نشونش نده.

 

ممنون میشم راهنمایی کنید.

 


import java.util.Scanner;

public class Student2 {
String name;
String family;
String studentNumber;
String birthDate;
String city;
int age;

public Student2(String name, String family, String studentNumber, int age, String birthDate, String city) {
this.name = name;
this.family = family;
this.studentNumber = studentNumber;
this.age = age;
this.birthDate = birthDate;
this.city = city;
}

@Override
public String toString() {
return "name: " + name + "| family: " + family + "| studentNumber: " + studentNumber + "| age: " + age + "| birthDate: " + birthDate + "| city: " + city;
}

public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int n = 0;
int i = 0;
Student[] array = new Student[100];

String order = "add";
while (!order.equals("exit")) {
System.out.print("Enter an Order: "); /*add - delete - show - exit*/
order = input.next();

if (order.equals("add")) {
n++;
System.out.print("Name: ");
String name = input.next();

System.out.print("family: ");
String family = input.next();

System.out.print("student number: ");
String studentNumber = input.next();

System.out.print("age: ");
int age = input.nextInt();

System.out.print("birth date: ");
String birthDate = input.next();

System.out.print("city: ");
String city = input.next();

array[i] = new Student(name, family, studentNumber, age, birthDate, city);
i++;

} else if (order.equals("delete")) {
System.out.print("Student Number: ");
String stNumber = input.next();

for (int j = 0; j < n; j++) {
if (stNumber.equals(array[j].studentNumber)) {
array[j].name = null;
array[j].family = null;
array[j].studentNumber = null;
array[j].age = 0;
array[j].birthDate = null;
array[j].city = null;
}
}

}
else if (order.equals("show")) {
if (n == 0)
System.out.println("there is no student!");
for (i = 0; i < n; i++) {
System.out.println(array[i]);
}
}


}


}
}

 

پرسیده شده در 1398/08/24 توسط

3 پاسخ

0

ولی یه حالتی نوشتم که اونی که حذف میشه رو نشون نده اینجوری:

case "show":
if (n == 0)
System.out.println("there is no student!");

for (i = 0; i < n; i++) {
if (array[i].name != null) {
System.out.println(array[i]);
}
}
break;

پاسخ در 1398/08/26 توسط
0

چطوری این آرایه رو داخل یه آرایه دیگه کپی کنم به جز اون اینکدس مورد نظر؟؟

پاسخ در 1398/08/26 توسط
1

اگر میخواید یه لیستی داشته باشید که قابلیت اضافه کردن و حذف کردن عضو داشته باشه باید از ArrayList استفاده کنید.

در این حالتی که شما کد نوشتید یا باید بجای ایندکسی که میخواید پاک کنید و اطلاعات خالی ذخیره کنید یا این آرایه و داخل یه آرایه جدید کپی کنید به غیر از اون ایندکس مورد نظر.

پاسخ در 1398/08/25 توسط

پاسخ شما