• Wir präsentieren Dir heute ein Stellenangebot für einen Java Entwickler - m/w/d in Augsburg, München, Stuttgart oder Bamberg. Hier geht es zur Jobanzeige

Methode schreiben, die einem Array ein Stringelement hinzufügt, wenn dieses noch nicht enthalten ist.

T

Timo2905

Neues Mitglied
Zur Zeit bereite ich mich auf meine erste Klausur zum Thema Programmierung vor. Nun soll ich eine Methode schreiben, die einem Array ein weiteres Stringelement hinzufügt, wenn dieses noch nicht enthalten ist. Soweit sieht meine Programmcode schlüssig aus, wenn ich jedoch versuche etwas auszugeben, erhalte ich die Meldung java.lang.ArrayIndexOutOfBoundsException: und kann mir leider echt nicht erklären woran es liegt. Vielen Dank schonmal für eure Antworten und nun mein Programmcode:


Java:
public static String[] fuegeHinzu(String[] woerter, String wort){
        
        String [] woerter2 = new String[woerter.length + 1];
        
        for(int i = 0; i < woerter.length; i++){
            
            if(wort != woerter[i]){
                
             woerter[i + 1] = wort;   
              
            } 
                            
        }
        return woerter2;
    }
    
    public static void main(String[] args){
        
        System.out.println(fuegeHinzu(new String[]{"Haus", "Maus", "Raus"}, "Raus"));
        System.out.println(fuegeHinzu(new String[]{"Haus", "Maus", "Raus"}, "Haus"));
        System.out.println(fuegeHinzu(new String[]{"Haus", "Maus", "Raus"}, "Klaus"));
    }
        
}
 
mihe7

mihe7

Top Contributor
Soweit sieht meine Programmcode schlüssig aus
Das sehe ich anders. Du vergleichst jeden String im Array mit einem Wort (per Referenz, was an sich schon falsch ist) und wenn sich diese unterscheiden, platzierst Du das Wort an die nächste Stelle in diesem Array. Dafür gibst Du ein ganz anderes Array zurück. Kurz: an dem Code stimmt praktisch gar nichts :)
 
kneitzel

kneitzel

Top Contributor
Also ich würde hier auch erst einmal Abstand vom Code nehmen und genau überlegen, was da überhaupt passieren soll!

Du hast ja drei Beispiele gegeben:
"Haus", "Maus", "Raus" / "Raus"
"Haus", "Maus", "Raus" / "Haus"
"Haus", "Maus", "Raus" / "Klaus"

Was soll da die jeweils das Ergebnis sein? Kannst Du erst einmal das genau sagen?

Du musst eine Aufgabenstellung genau verstanden haben - wenn das nicht der Fall ist, dann kann nichts richtiges heraus kommen.

Und dann würde ich dir empfehlen, ganz viel praktisch zu üben - bei dem Code liegt so viel im argen - Da aber der Ansatz offensichtlich schon falsch ist, lohnt es sich kaum, darauf einzugehen, aber in Kürze einmal:
- Exception tritt auf, weil die Schleife bis length-1 des Arrays läuft und du aber us das Element mit +1 zugreifst.
- Nimm ordentliche Namen! Das Problem ist, dass Du Zuweisungen in woerter hast, aber das Ziel ist doch eigentlich woerter2 (das auch um ein Feld größer ist und daher wäre die Exception weg - aber der Algorithmus würde dadurch nicht besser!)

Kein Schleifenende?
Doch, er hat eine saubere Schleife, die auch ein klares Schleifenende hat - genau richtig um über alle Elemente in woerter zu iterieren.
 
B

BlackBookOne

Mitglied
Java:
import java.util.Arrays;

public class Utils {
    public static String[] fuegeHinzu(String[] woerter, String wort) {
        for (String string : woerter) {
            if (string.equals(wort)) {
                return woerter;
            }
        }
        int len = woerter.length;
        String[] woerter2 = new String[len + 1];
        for (int i = 0; i < len; i++) {
            woerter2[i] = woerter[i];
        }
        woerter2[len] = wort;
        return woerter2;
    }

    public static void main(String[] args) {
        String[] mystrings = new String[] { "Haus", "Maus", "Raus" };
        System.out.println(Arrays.toString(mystrings = fuegeHinzu(mystrings, "Raus")));
        System.out.println(Arrays.toString(mystrings = fuegeHinzu(mystrings, "Haus")));
        System.out.println(Arrays.toString(mystrings = fuegeHinzu(mystrings, "Klaus")));
        System.out.println(Arrays.toString(mystrings = fuegeHinzu(mystrings, "Barbara")));
    }
}
 
B

BlackBookOne

Mitglied
Und was meinst Du, wie diese Lösung dem TE bei seiner Klausur helfen wird?
Deine Antwort war glaube ich falsch, deshalb hatte ich das richtiggestellt.

Außerdem dachte ich, hier ging es um eine Korrektur und nicht wie sie oder er sich möglichst gut durch eine Klausur schummeln kann.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
O findRoot Methode schreiben in einem Intervall Java Basics - Anfänger-Themen 31
J Methode zur Ausgabe eines Dreiecks aus Sternen schreiben? Java Basics - Anfänger-Themen 2
J Methode selber schreiben Java Basics - Anfänger-Themen 5
O Erste Schritte Eigene charAt(i) Methode schreiben Java Basics - Anfänger-Themen 10
S Wie muss ich die Generische Methode schreiben? Java Basics - Anfänger-Themen 6
D Datentypen StringToFloat-Methode schreiben Java Basics - Anfänger-Themen 0
L Methode schreiben die den maximalen Wert im Array ermittelt Java Basics - Anfänger-Themen 27
M Best Practice Wann eine Methode schreiben ? Java Basics - Anfänger-Themen 14
K Thread - Methoden in die run Methode Schreiben Java Basics - Anfänger-Themen 5
H Array Test Methode schreiben Java Basics - Anfänger-Themen 3
T Probleme eine Methode zu schreiben Java Basics - Anfänger-Themen 20
S neue Methode schreiben Java Basics - Anfänger-Themen 14
E Methoden Wie kann ich eine Methode so schreiben, dass Methodenaufruf polymorph erfolgen kann? Java Basics - Anfänger-Themen 8
C Methoden Methode istDurchZahlTeilbar schreiben Java Basics - Anfänger-Themen 38
F Klassen DataBuffer - Methode um Array in eine Bank zu schreiben Java Basics - Anfänger-Themen 3
W Eine Methode schreiben, ob eine Matrix eine Diagonalmatrix ist.? Java Basics - Anfänger-Themen 3
D Eigene equals methode schreiben Java Basics - Anfänger-Themen 4
L ArrayList über Methode in Datei schreiben Java Basics - Anfänger-Themen 13
JavaKaffee Taschenrechner, Methode schreiben? Java Basics - Anfänger-Themen 6
K Eine Neue Methode Schreiben . Java Basics - Anfänger-Themen 15
A Klassen: Ein Testprogramm mit der main Methode schreiben? Java Basics - Anfänger-Themen 3
M Wie diese Methode schreiben? Java Basics - Anfänger-Themen 8
F Methode double [ ][ ] sum3D(double[ ][ ][ ] cubic) schreiben Java Basics - Anfänger-Themen 4
B eine methode erstellen Java Basics - Anfänger-Themen 5
D Methode Java Basics - Anfänger-Themen 2
T Auf Instanz der selben Klasse aus überschriebener Methode in Methode zugreifen. Java Basics - Anfänger-Themen 2
amelie123456 Geschwindigkeit der Methode bewegeDich eines Objekts ändern Java Basics - Anfänger-Themen 2
M mehrere Rückgabenwerte aus Methode Java Basics - Anfänger-Themen 7
Stargirlxo Iterator + Methode Java Basics - Anfänger-Themen 10
G Rekursive Methode mit 2 Aufrufen Java Basics - Anfänger-Themen 1
H Warum kann man keine Parameter in die main-Methode packen? Java Basics - Anfänger-Themen 4
G return 1 + methode Java Basics - Anfänger-Themen 4
Henri Webservice Delete und Update Methode funktioniert nicht Java Basics - Anfänger-Themen 27
T getAttribut in einer Methode aufrufen Java Basics - Anfänger-Themen 8
T Methode um Array mit for-each-Schleife auszulesen Java Basics - Anfänger-Themen 7
N Groß- und Kleinschreibung bei Java: void Methode Java Basics - Anfänger-Themen 1
BorussiaMG1900 Implementation einer Methode Java Basics - Anfänger-Themen 1
H Kürzere Scan Methode Java Basics - Anfänger-Themen 7
J Problem mit einer Methode die gewissen Inhalt einer Array löschen soll Java Basics - Anfänger-Themen 9
J Problem mit einer Methode, die beliebig viele Objekte in Array speichern soll Java Basics - Anfänger-Themen 6
L Methode für Zweidimensionale Arrays Java Basics - Anfänger-Themen 4
H Methode mit Array als Rückgabe This method must return a result of Type int[] Java Basics - Anfänger-Themen 2
G Erste Schritte Array Mittelwert Methode Programmieren Java Basics - Anfänger-Themen 5
O Methode in while-Schleife aufrufen geht nur beim ersten Mal Java Basics - Anfänger-Themen 2
KogoroMori21 Methode in der main ausgeben Java Basics - Anfänger-Themen 2
LetsSebi Methode, die einen arry von objekten speichert in einer datei Java Basics - Anfänger-Themen 6
L Methode zum invertieren eines Arrays Java Basics - Anfänger-Themen 7
s_1895 zu viele Zeilen in der Main Methode Java Basics - Anfänger-Themen 4
M Rekursive Java-Methode Java Basics - Anfänger-Themen 13
H Methode über String Wert aufrufen Java Basics - Anfänger-Themen 8
B Methoden warum macht die Methode nicht das was ich erwarte? Java Basics - Anfänger-Themen 2
L Attribute aus Klasse in berechnungs Methode übergeben Java Basics - Anfänger-Themen 1
Y Aufruf von Methode nicht möglich. Java Basics - Anfänger-Themen 2
O Instanzattribut per Getter Methode zuweisbar, warum? Java Basics - Anfänger-Themen 3
C Größte Zahl aus einem Array ermitteln(als statische Methode) Java Basics - Anfänger-Themen 31
G Methoden Methode die aus einem Array ein Index ausgibt? Java Basics - Anfänger-Themen 2
R Boolean Methode Rückgabewert if() Java Basics - Anfänger-Themen 1
P Methode die ausgibt wie viele Primzahlen es zwischen 2 und n gibt Java Basics - Anfänger-Themen 10
G Rekursive Methode liefert augenscheinlich keinen boolean-Wert zurück. Java Basics - Anfänger-Themen 4
kazzam94 Methode soll Array von Boolean zurückgeben Java Basics - Anfänger-Themen 5
M negate Methode Java Basics - Anfänger-Themen 13
JavaClara Fehlermeldung bei split-Methode Java Basics - Anfänger-Themen 12
A Methode in einer anderen Klasse verwenden Java Basics - Anfänger-Themen 1
Eule25 Methode mit Array Java Basics - Anfänger-Themen 4
J Methoden Frage: Array-Werte in anderer Methode ändern Java Basics - Anfänger-Themen 4
S HashMap contains() Methode Java Basics - Anfänger-Themen 1
F Methoden Methode richtig aufrufen Java Basics - Anfänger-Themen 3
JD_1998 Array-Position aus einer Methode in einer anderen ausgeben (Kurze Frage) Java Basics - Anfänger-Themen 2
JD_1998 Random Array sortieren mit Hilfe einer Methode Java Basics - Anfänger-Themen 4
T Methode implementieren Java Basics - Anfänger-Themen 21
JD_1998 Vorgegebene Methode erweitern um Hex -> Dezimal umzuwandeln Java Basics - Anfänger-Themen 1
A While Schleife - buubelsort methode Java Basics - Anfänger-Themen 2
NeoLexx equals()-Methode Verständnis Frage anhand Code Beispiel Java Basics - Anfänger-Themen 22
X compareTo Methode wird ignoriert Java Basics - Anfänger-Themen 7
macle Rekursive String Methode, Gerade Zahlen rausfiltern Java Basics - Anfänger-Themen 10
B Wie kann ich etwas vor der Main-Methode ausführen? Java Basics - Anfänger-Themen 21
J Methode als Class anlegen Java Basics - Anfänger-Themen 7
K Übergabe von Werten (zweidimensionales Array) aus einer Methode an zweidimensionales Array in main() Java Basics - Anfänger-Themen 3
M this.object in einer parameterlosen Methode verwenden Java Basics - Anfänger-Themen 3
P Methode trim() ohne StringBuilder Java Basics - Anfänger-Themen 1
N Selection Algorithmus: Methode wird nicht erkannt (BlueJ) Java Basics - Anfänger-Themen 3
P Problem beim Überschreiben einer vererbten Methode Java Basics - Anfänger-Themen 4
B Methode für jede beliebe Entity erstellen Java Basics - Anfänger-Themen 7
O BiPredicate in einer forEach Methode Java Basics - Anfänger-Themen 10
B Klassen Abstrake Klasse und Template Methode Java Basics - Anfänger-Themen 4
parrot Array: Methode fügeHinzu Java Basics - Anfänger-Themen 13
B Eine Methode erstellen Java Basics - Anfänger-Themen 3
G Java charAt Methode Java Basics - Anfänger-Themen 10
G main Methode Java Basics - Anfänger-Themen 5
L Methode implementieren, Parameter die übergeben werden sind final Java Basics - Anfänger-Themen 4
G Java LinkedList remove Methode Java Basics - Anfänger-Themen 5
L Wie greife ich in der Subklasse auf die Parameter einer Methode der Superklasse zu ? Java Basics - Anfänger-Themen 15
Bluedaishi Hilfe beim erklären dieser Methode Java Basics - Anfänger-Themen 5
N Methode um Objekte einer Liste hinzuzufügen Java Basics - Anfänger-Themen 1
1 main-Methode erweitern, Nachfrage nach wiedeholung Java Basics - Anfänger-Themen 2
Y Methode + Parameters + Ein und Ausgabe Java Basics - Anfänger-Themen 1
L Variable von einer Methode zu einer anderen Methode inkl. einer "Zwischenmethode" Java Basics - Anfänger-Themen 1
G Java equals() Methode Java Basics - Anfänger-Themen 9
I Greedy Methode Methoden nutzen Java Basics - Anfänger-Themen 3
B Hilfe bei einer rekursiven Methode Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Anzeige

Neue Themen


Oben