Удаление/замена объектов в массивеJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Удаление/замена объектов в массиве

Сообщение Anonymous »

У меня есть список слов (объект) в массиве. Каждое слово имеет номер, слово и подсказку. (пожалуйста, не число на 1 больше, чем индекс в массиве). Я хочу, чтобы пользователь мог удалить элемент в массиве. Я написал метод, который считывает введенное пользователем (int) слово, а подсказка в индексе ввода принимает значение подсказки и слова в следующем массиве, а затем этот человек принимает подсказку и слово из следующего. это и т. д. Я написал метод, но каждый раз, когда я удаляю слово, любые слова после tat берут слово и подсказку последнего объекта в массиве
например: сначала это похоже на

Код: Выделить всё

1   dog   bark

2 cat meow

3  cow moo

4  chicken cluck

5  pig  oink
после того, как пользователь удалит слово на позиции 3

Код: Выделить всё

1 dog  bark

2  cat meow

3 pig oink

4 pig oink
Кто-нибудь может сказать мне, в чем проблема?
код:

Код: Выделить всё

public void deleteWord() throws IOException {

if (wCount > 0) {
int again = JOptionPane.YES_OPTION;
while (again == JOptionPane.YES_OPTION) {
int num = Integer.parseInt(JOptionPane.showInputDialog(null, "Enter the number of the word you wish to delete", "Enter word number", JOptionPane.PLAIN_MESSAGE))-1;
int cnfrm = JOptionPane.showConfirmDialog(null, "Are you sure you wish to delete the word:" + "\n" + "\t" + wArr[num].getWrd(), "Are you sure?", JOptionPane.YES_NO_OPTION);
if (cnfrm == JOptionPane.YES_OPTION) {
for (int i = num; i < (wCount - 1); i++) {
for (int j = (i + 1); j < wCount; j++) {
wArr[i].setWrd(wArr[j].getWrd());
wArr[i].setHnt(wArr[j].getHnt());
}
}
wCount--;
wArr[wCount] = null;
}
PrintWriter pw = new PrintWriter(new FileWriter("words.txt", false));
for (int x = 0; x < wCount; x++) {
pw.println(wArr[x].toString(1));
}
pw.close();
displayWords();
again = JOptionPane.showConfirmDialog(null, "Do you wish to delete another word?", "Delete another wod?", JOptionPane.YES_NO_OPTION);
}
} else {
JOptionPane.showMessageDialog(null, "Thre are no words to delete", "ERROR", JOptionPane.ERROR_MESSAGE);
}

}
РЕДАКТИРОВАТЬ:
Это домашнее задание, что, очевидно, означает, что я еще ничего не знаю о программировании, в т.ч. ArrayList. Я узнаю о них, но, к сожалению, этот проект (Виселица, если вам интересно) должен быть сдан в понедельник, поэтому я не буду реализовывать его в этой программе.

Подробнее здесь: https://stackoverflow.com/questions/123 ... n-an-array
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»