String aus einem Array entfernen

JavaKev

Mitglied
Hallo, ich habe folgende Aufgabe bekommen: Erstellen Sie eine Methode 'filterArray', die ein Array zurückliefert mit allen Einträgen des gegebenen String[]-Parameters ohne das eine Element, welches dem zweiten String-Parameter entspricht. Der Rückgaberwert ist ein Array mit nur den verbleibenden Elementen (in gleicher Reihenfolge). Sie können davon ausgehen, dass das zu entfernende String-Element genau einmal im Array vorkommt.

Nun habe ich folgenden Code geschrieben:
Java:
public String[] filterArray(String[] nameList, String nameToRemove){
    for (int i = 0; i < nameList.length; i++) {
            if (nameToRemove.contains(nameList[i])) {
                nameList[i] = "";
            }
    }
    return nameList;
    
}

Ich habe hier allerdings das Problem das ich bei z.B.
{ "Asterix", "Obelix", "Caesar", "Idefix" }, "Caesar"))); ----> [Asterix, Obelix, , Idefix]

er entfernt mir also nicht die Kommas mit, wodurch das Ergebnis nicht korrekt ist. Ich habe allerdings auch keine Idee wie man sonst ein String aus dem Array löschen kann. Kann mir vielleicht jemand einen Tipp geben?
 

httpdigest

Top Contributor
Du enfernst ja auch nicht das zu entfernende Array-Element. Du setzt es im Eingabearray nur auf den Leerstring. Das Array-Element an sich ist dann immer noch da, der Wert davon ist dann nur der Leerstring. Du musst ein neues Array erzeugen und das dann zurückgeben, statt das zu entfernende Element im Eingabearray durch den Leerstring zu ersetzen.
 

Kirby.exe

Top Contributor
Es würde zum Beispiel so funktionieren:

Java:
    public static String[] filterArray(String[] arr, String input) {
        return Arrays.stream(arr).filter(x -> !x.equals(input)).toArray(String[]::new);
    }
 

JavaKev

Mitglied
Du enfernst ja auch nicht das zu entfernende Array-Element. Du setzt es im Eingabearray nur auf den Leerstring. Das Array-Element an sich ist dann immer noch da, der Wert davon ist dann nur der Leerstring. Du musst ein neues Array erzeugen und das dann zurückgeben, statt das zu entfernende Element im Eingabearray durch den Leerstring zu ersetzen.
wenn ich ein neues String Array erzeugen möchte, mache ich dies doch nach folgender Struktur: String[] neuString = new String[]; aber was muss den in die Klammern bei dem new String? oder bin ich gerade komplett auf dem Holzweg?
 

Kirby.exe

Top Contributor
wenn ich ein neues String Array erzeugen möchte, mache ich dies doch nach folgender Struktur: String[] neuString = new String[]; aber was muss den in die Klammern bei dem new String? oder bin ich gerade komplett auf dem Holzweg?
Die Länge des vorherigen Arrays -1, da du ja ein Element entfernst ;)

Es sollte so aussehen:
Java:
String[] freshArray = new String[nameList.length-1]
 

httpdigest

Top Contributor
Du hast ein Array aus Strings. Somit ist jeder String, egal wie lang er ist, ein einziges Element des Arrays. Du hast ja kein Array aus Buchstaben, sondern ein Array aus Strings/Zeichenketten.
 

JavaKev

Mitglied
Jetzt sieht mein Code so aus:
Java:
public static String[] filterArray(String[] nameList, String nameToRemove){
        String[] neuString = new String[nameList.length-1];
        for (int i = 0; i < nameList.length; i++) {
                if (nameToRemove.contains(nameList[i])) {
                    continue;
                } else {
                    neuString[i] = nameList[i];
                }
        }
        return neuString;
        
    }

ich bekomme jetzt die Fehlermeldung "IndexOutOfBounds" aber wieso? :confused:
 

Kirby.exe

Top Contributor
Das liegt daran dass du bist nameList.length läufst und dein neues Array einen Index weniger hat ;)

So sollte es funktionieren ;)

Java:
public static String[] filterArray(String[] nameList, String nameToRemove){
        String[] neuString = new String[nameList.length-1];
        for (int i = 0,j = 0; i < nameList.length; i++) {
                if (nameList[i].equals(nameToRemove)) {
                    continue;
                } else {
                    neuString[j] = nameList[i];
                    j++;
                }
        }
        return neuString;
    }
 
Zuletzt bearbeitet:

JavaKev

Mitglied
Das liegt daran dass du bist nameList.length läufst und dein neues Array einen Index weniger hat ;)
Das liegt daran dass du bist nameList.length läufst und dein neues Array einen Index weniger hat ;)

So sollte es funktionieren ;)

Java:
public static String[] filterArray(String[] nameList, String nameToRemove){
        String[] neuString = new String[nameList.length-1];
        for (int i = 0,j = 0; i < nameList.length; i++) {
                if (nameList[i].equals(nameToRemove)) {
                    continue;
                } else {
                    neuString[j] = nameList[i];
                    j++;
                }
        }
        return neuString;
    }
Danke sehr für die Hilfe :)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
FelixN RegEx aus einem String als String-Array zurückgeben Java Basics - Anfänger-Themen 8
T Schauen ob eine Ziffer in einem String-Array häufiger vorkommt Java Basics - Anfänger-Themen 8
D Input/Output Array in einem String mit einem Trennzeichen verbinden Java Basics - Anfänger-Themen 17
F Methoden Kontaktliste - String in einem Array suchen und ausgeben Java Basics - Anfänger-Themen 3
B Binäre Suche in einem String Array Java Basics - Anfänger-Themen 10
G String einem String Array übergeben Java Basics - Anfänger-Themen 3
J Einem String-Array in einer for-Schleife Strings zuweisen - Klappt nicht in einer for-Schleife Java Basics - Anfänger-Themen 5
P String Sortieren in einem Array Java Basics - Anfänger-Themen 7
B Werte aus JTextArea in einem String Array ablegen Java Basics - Anfänger-Themen 4
Beckenbauer OOP Durch Komma getrennte Einträge in einem String in ein Array oder eine Tabelle schreiben Java Basics - Anfänger-Themen 4
T Anzahl eines Strings in einem String-Array Java Basics - Anfänger-Themen 5
P String aus Zahlen auslesen und in einem Array speichern Java Basics - Anfänger-Themen 3
G Elemente in einem String-Array in einen String umwandeln Java Basics - Anfänger-Themen 2
J Schlüsselworte Prüfen, ob ein bestimmtes, ganzes Wort in einem String enthalten ist. Java Basics - Anfänger-Themen 6
XWing Randomizer mit einem String Java Basics - Anfänger-Themen 2
Distanz zwischen zwei Zeichenfolgen in einem String bestimmen Java Basics - Anfänger-Themen 5
Substring in einem String finden Java Basics - Anfänger-Themen 13
G Position einer unbekannten 3-stelligen-Zahl in einem String finden Java Basics - Anfänger-Themen 15
P9cman Vokale in einem String überprüfen mittels Rekursion Java Basics - Anfänger-Themen 8
U Char zu einem String machen Java Basics - Anfänger-Themen 1
N Aus einem String die Anzahl der Vokale auslesen Java Basics - Anfänger-Themen 40
I Validation, ob String ein Wert aus einem Enum enthält Java Basics - Anfänger-Themen 3
R Mehrere Buchstaben aus einem String entfernen Java Basics - Anfänger-Themen 1
P Ein Objekt nach einem String durchsuchen? Java Basics - Anfänger-Themen 7
F Java Programm, das kleine Buchstaben in einem String zählen soll und bei großen Buchstaben oder Sonderzeichen abbrechen soll. Java Basics - Anfänger-Themen 5
J Verschieben von Buchstaben in einem String um vorgegebene Anzahl von Zeichen innerhalb eines weiteren String Java Basics - Anfänger-Themen 12
F JMenuItem Kann nicht nach einem String benannt werden... Java Basics - Anfänger-Themen 11
S Ersetzen eines Asterix in einem String Java Basics - Anfänger-Themen 8
J erstes Vorkommen eines Chars aus einem String entfernen Java Basics - Anfänger-Themen 3
B String zu einem bestehenden String hinzufügen Java Basics - Anfänger-Themen 9
J Wie kann ich z.B. einem int-Wert einen String-Wert zuweisen? Java Basics - Anfänger-Themen 2
O String von vorne nach hinten an einem Zeichen Java Basics - Anfänger-Themen 10
F Buchstaben in einem String vertauschen (Ohne replace) Java Basics - Anfänger-Themen 10
Dimax Leerzeilen aus einem String entfernen Java Basics - Anfänger-Themen 61
A In einem String alle Eigennamen zählen Java Basics - Anfänger-Themen 6
N Variablen int Wert einem String abgeben Java Basics - Anfänger-Themen 8
C Chars in einem String alphabetisch sortieren Java Basics - Anfänger-Themen 1
F String zu einem Server senden Java Basics - Anfänger-Themen 4
A regulären Ausdruck mit Hilfe der Klasse Scanner in einem String finden Java Basics - Anfänger-Themen 2
D Java doppelte Zahlen auch über 10 in einem String entfernen Java Basics - Anfänger-Themen 2
D Java doppelte Zahl/Zeichen in einem String entfernen Java Basics - Anfänger-Themen 6
A werte in einem String berechnen Java Basics - Anfänger-Themen 3
F Größtes Produkt in einem String Java Basics - Anfänger-Themen 4
P Char aus einem String auswählen Java Basics - Anfänger-Themen 4
M Benutzerdefinierte Suche in einem String - outofbounds Java Basics - Anfänger-Themen 7
C Anzahl bestimmter Zeichen in einem String ausgeben Java Basics - Anfänger-Themen 7
C Position eines Zeichens in einem String ausgeben Java Basics - Anfänger-Themen 1
A Wie kann man einen zufälligen String aus einem StringArray auswählen? Java Basics - Anfänger-Themen 6
M (Leerzeichen) zu einem gesuchten String Java Basics - Anfänger-Themen 4
K String mit Leerstellen und einem X Java Basics - Anfänger-Themen 2
F In einem String nach einem String suchen und Zeichen danach ausgeben Java Basics - Anfänger-Themen 6
D Daten von einem int in einen string Java Basics - Anfänger-Themen 5
D Zahl in einem String finden Java Basics - Anfänger-Themen 4
I Entitäten speichern in einem String? Java Basics - Anfänger-Themen 1
W Schlüsselworte Methode, die die grösste Zahl aus einem String ermittelt und zurückgibt Java Basics - Anfänger-Themen 8
C Methoden String von einem toString() herauslesen Java Basics - Anfänger-Themen 2
B Wie aus einem Datum String eine Timestamp erzeugen Java Basics - Anfänger-Themen 6
N Maximale Zahl in einem String Java Basics - Anfänger-Themen 8
B Unbekannte Zahl aus einem String umwandeln Java Basics - Anfänger-Themen 15
B Bestimmte Werte aus einem String entnehmen Java Basics - Anfänger-Themen 3
I Aus einem String Vorname & Nachname bekommen Java Basics - Anfänger-Themen 2
J Ascii Zeichen von einem String umwandeln und ausgeben Java Basics - Anfänger-Themen 11
D aus einem einzeiligen String ein neues Objekt erstellen Java Basics - Anfänger-Themen 5
J gesamte Hashmap mit Zeilenumbrüchen in einem String Java Basics - Anfänger-Themen 8
J Aus einem String unbekannte zeichen filtern Java Basics - Anfänger-Themen 11
A mehrere replace in einem string Java Basics - Anfänger-Themen 3
D String einem String[] hinzfügen Java Basics - Anfänger-Themen 13
C String ab einem bestimmten Char abschneiden??? Java Basics - Anfänger-Themen 7
O Zahlenformatierung in einem String Java Basics - Anfänger-Themen 4
J Von einem String einzelne Wörter speichern Java Basics - Anfänger-Themen 6
D Das 1. Wort aus einem String herauslesen Java Basics - Anfänger-Themen 6
D Zählen von Umlauten in einem String Java Basics - Anfänger-Themen 4
S Zeichen in einem String hochstellen? Java Basics - Anfänger-Themen 9
M Erstes Zeichen in einem String in Großbuchstaben wandeln Java Basics - Anfänger-Themen 3
C Problem mit der Extraktion von Zahlen aus einem String Java Basics - Anfänger-Themen 8
J Anzahl der Buchstaben in einem String Java Basics - Anfänger-Themen 12
I Wie kann ich ein Wort in einem String suchen Java Basics - Anfänger-Themen 3
Z Sonderzeichen in einem String gezeichnen/bearbeiten Java Basics - Anfänger-Themen 6
S Sonderzeichen in einem String erkennen Java Basics - Anfänger-Themen 20
eXistenZ wert von einem String auf einen Integer ändern =( Java Basics - Anfänger-Themen 6
J Wörter in einem string zählen und die anzahl zurückgeben Java Basics - Anfänger-Themen 4
D Einzelne Ziffern aus einem String Java Basics - Anfänger-Themen 10
M Datentypen Mehrere Integer aus einem String auslesen Java Basics - Anfänger-Themen 4
N an einem String ein zahl anhengen Java Basics - Anfänger-Themen 6
V Anzahl eines Buchstaben in einem String zählen Java Basics - Anfänger-Themen 7
R einen gegebenen String in einem String suchen Java Basics - Anfänger-Themen 6
Developer_X jede Zeile einer Datei mit einem String verketten Java Basics - Anfänger-Themen 16
B String einem Chararray zuweisen Java Basics - Anfänger-Themen 2
J Aus einem String blanks entfernen oder hinzufügen. Java Basics - Anfänger-Themen 9
I Aufkommen eines be*timmten Zeichens in einem String zählen Java Basics - Anfänger-Themen 13
S Anzahl von Zeichen in einem String suchen und zählen Java Basics - Anfänger-Themen 1
B Mehrere Methoden an einem String Java Basics - Anfänger-Themen 6
G Zeilenumbruch in einem String Java Basics - Anfänger-Themen 21
N Bytes in einem String Java Basics - Anfänger-Themen 3
M in einem String vergleichen Java Basics - Anfänger-Themen 9
R Probleme beim umwandeln eines String zu einem Int Wert Java Basics - Anfänger-Themen 3
C bestimmte Buchstaben in einem String ändern Java Basics - Anfänger-Themen 5
H Mehrmaliges vorkommen eines Zeichens in einem String Java Basics - Anfänger-Themen 14
M Input/Output Stream aus einem String Java Basics - Anfänger-Themen 2
N Zahl aus einem String finden und als Integer speichern Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben