در توسینسو تدریس کنید

و

با دانش خود درآمد کسب کنید

Viper

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

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

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

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]);
}
}


}


}
}

 

این سوال 1 پاسخ دارد.
لذت یادگیری با توسینسو
به عنوان شخصی که مدت هاست از سایت توسینسو استفاده می کنم باید بگم که واقعاً یکی از بهترین مرجع ها برای ارتقاء دانش شخصی هست. دوره های سایت، راهکارها و مطالب، همگی عالی هستند.
حسام رسولیان

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

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

  • انتخاب شده به عنوان جواب توسط 1 نفر
Viper

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

( اللّهمّ صلّ علی محمّد و آل محمّد )
Viper

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

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;

( اللّهمّ صلّ علی محمّد و آل محمّد )
پاسخ شما
برای ارسال پاسخ خود وارد شوید.
از سرتاسر توسینسو
تنظیمات حریم خصوصی
تائید صرفنظر
×

تو می تونی بهترین نتیجه رو تضمینی با بهترین های ایران بدست بیاری ، پس مقایسه کن و بعد خرید کن : فقط توی جشنواره پاییزه می تونی امروز ارزونتر از فردا خرید کنی ....