Etwas bestimmtes löschen

flotschi

Mitglied
Hey, ich brächte wiedermal hilfe.

Ich möchte wenn ich z.b. jetzt drei neue Artikel anlege oder erstelle, das ich dann einen dieser Artikel löschen kann. Mit Hilfe eines Konsolenmenüs rufe ich die Methode auf und wenn ich dann 2. Einen bestimmten Artikel löschen, klicke; kommt dann das ich den zu löschenden Namen eingeben soll und sobald ich das tue kommt eine Fehlermeldung. Wie mach ich das??

Code:
void loescheArtikel(String Name){
Code:
for(int i = 0; i < A.size(); i++){
Code:
if(A != null){
Code:
if((A.get(i).getName().equals(Name))){
Code:
A = null;
Code:
return;}}}}
 
Zuletzt bearbeitet:
in welcher datenstruktur werden die artikel gehalten? (ich hoffe mal, ich habe verstanden, was du willst 😉)
 
Aso im einer Arraylist, das ist wenn ich auf das Konsolenmenü komme.

Code:
System.out.println("Geben Sie einen Namen ein: ");
Code:
String  suche = sc.nextLine();
Code:
Artikel A = DB.sucheArtikel();
Code:
if(A != null){
Code:
System.out.println(A);  }
 
Zuletzt bearbeitet:
Das ist Müll! Immer sinnvoll einfrücken. Und wenn man in einem Forum schreibt, dass eine Fehlermeldung kommt, macht es Sinn diese auch zu posten.

so ungefähr...
Java:
 void loescheArtikel(String Name) {
      if (A != null) { //vorher überprüfen
         for (int i = 0; i < A.size(); i++) {
            if(A.get(i) != null && A.get(i).getName().equals(Name)){            
               //A = null; willst du die komplette liste löschen?==
               A.remove(i);
               return;
            }
         }
      }
   }
 
ja ich hab keine Ahnung wie man so etwas macht ich bin noch nicht sehr lange registriert. xD

nein ich will nicht die komplete liste löschen, ich will einen Artikel löschen, wenn ich zwei oder drei hinzufüge.

[Java=38]

Herzlich Willkommen in der Datenbank!!

0. Das folgende Menü ausgeben:
1. Datenbank ausgeben
2. Die Datenbank wird mit 5 Artikeln gefüllt
3. Einen neuen Artikel hinzufügen
4. Die Größe ausgeben
5. Nach Artikel suchen
6. Einen bestimmten Artikel löschen
7. Die gesamte Datenbank löschen
8. Verschlüsselung ausgeben
9. Die Datenbank in eine Textdatei speichern
10. Die gesamte Datenbank laden
11. Die Datenbank sortieren
12. Die Datenbank serialisieren
13. Beenden
2
Die Datenbank wurde mit 5 Artikeln gefüllt
1
[Der Sturm des Jahrhunderts, 20, Buch, Thriller, 2012, 15, Film, Action, Metallica, 10, Musik, Metal, The Fast and the Furios, 20, Film, Action, Foo Fighters, 30, Musik, Rock]
[Der Sturm des Jahrhunderts, 20, Buch, Thriller, 2012, 15, Film, Action, Metallica, 10, Musik, Metal, The Fast and the Furios, 20, Film, Action, Foo Fighters, 30, Musik, Rock]
[Der Sturm des Jahrhunderts, 20, Buch, Thriller, 2012, 15, Film, Action, Metallica, 10, Musik, Metal, The Fast and the Furios, 20, Film, Action, Foo Fighters, 30, Musik, Rock]
[Der Sturm des Jahrhunderts, 20, Buch, Thriller, 2012, 15, Film, Action, Metallica, 10, Musik, Metal, The Fast and the Furios, 20, Film, Action, Foo Fighters, 30, Musik, Rock]
[Der Sturm des Jahrhunderts, 20, Buch, Thriller, 2012, 15, Film, Action, Metallica, 10, Musik, Metal, The Fast and the Furios, 20, Film, Action, Foo Fighters, 30, Musik, Rock]
6
Geben Sie das zu löschenden Artikel ein:
Der Sturm des Jahrhunderts
Exception in thread "main" java.lang.NumberFormatException: For input string: "Der Sturm des Jahrhunderts"
at java.lang.NumberFormatException.forInputString(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at Artikel.Konsolenmenü.holeEingabe(Konsolenmenü.java:27)
at Artikel.Konsolenmenü.Los(Konsolenmenü.java:21)
at Artikel.Starter.main(Starter.java:13) [/Java]
 
von welchem typ? poste doch mal mehr code und benutze dazu javatags. also prinzipiell kannst du elemente mit
Code:
deineList.remove(..)
entfernen. dazu brauchst du entweder den index von deinem zu löschendem item oder ein object welches inhaltlich gleich ist (bei einer Liste von einer eigenen Klasse muss dabei die [c]equals(Object o)[/c] überschrieben werden). Überlegenswert wäre vllt auch eine Map o.ä.
 
vom Typ String

ich erstelle vorher 5 Artikel(Name, Preis, Kategorie) und will dann sobald ich diese Fünf hinzugefügt habe eines davon löschen.

void fuelleDB(){
Artikel b = (new Artikel("Der Sturm des Jahrhunderts", 20, "Buch, Thriller"));
addArtikel(b);
b = new Artikel("2012", 15, "Film, Action");
addArtikel(b);
b = new Artikel("Metallica", 10, "Musik, Metal");
addArtikel(b);
b = new Artikel("The Fast and the Furios", 20, "Film, Action");
addArtikel(b);
b = new Artikel("Foo Fighters", 30, "Musik, Rock");
addArtikel(b);
}
 
Zuletzt bearbeitet:

Zurück
Oben