Ergebnis 1 bis 2 von 2

Thema: Java - String in String-Array finden

  1. #1
    Youngster Avatar von bitterlemoncola
    Registriert seit
    03.11.2008
    Ort
    Mannheim
    Alter
    29
    Beiträge
    13
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard Java - String in String-Array finden

    Hallo,
    ich habe die Aufgabe in Java eine Funktion zu erstellen, welche einen String in einem String-Array findet und die Stelle anzeigt.
    Mein Problem ist, dass das nur funktioniert, wenn ich mit einem "break" arbeite.
    Da mein Lehrer immer sagt, dass "breaks" eine unschöne Lösung sind, versuchte ich die Bedingung in einer Zählschleife so zu formulieren, dass es ohne ein "break" funktioniert. Das funktioniert aber leider nicht.

    Ich bekomme beim Öffnen der Datei die Fehlermeldung:
    "index out of bounds exception"

    Hier der Konstruktor:

    Code:
    public Aufgabe(){
            String[][] textListe = {
                {"Diese", "Aufgabe", "ist", "wirklich", "sehr", "kompliziert"},
                {"Aber", "für", "mich", "kein", "Problem"}
            };
            String text = "Aufgabe";
            System.out.println(index(textListe, text));
        }
    Das ist die funktionierende Funktion(mit break):

    Code:
    String index (String[][] feld, String suchText){
    
            int a, b, h1, h2;
            String ausgabe = "";
            
            for(a = 0; a<=feld.length-1; a++){
                for(b = 0; b<=feld[a].length-1; b++){
                    if(feld[a][b].equals(suchText)){
                        h1 = 1+a;
                        h2 = 1+b;
                        ausgabe = "Wort "+h2+" in Satz "+h1;
                        break;
                    }
                }
            }
            return ausgabe;
        }
    Und das ist meine "Problemfunktion"(ohne break):

    Code:
    String index (String[][] feld, String suchText){
            
            String ausgabe = "";
            int a, h1, h2;
            int b = 0;
            
            for(a = 0; a<=feld.length-1 || suchText.equals(feld[a][b]); a++){
                for(b = 0; suchText.equals(feld[a][b]) || b<=feld[a].length-1; b++){
                    h1 = 1+a;
                    h2 = 1+b;
                    ausgabe = "Wort "+h2+" in Satz "+h1;
                }
            }
            return ausgabe;
        }
    Ich hoffe ihr könnt mir erklären bzw. einen Hinweis geben, warum die letztere Funktion nicht so funktioniert wie sie soll, d.h. warum sie nicht das selbe zurückgibt, wie die funktionierende.
    Danke im vorraus!
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!
    Computer lösen Probleme, die man vorher nicht hatte.

  2. #2
    König(in)
    Registriert seit
    06.06.2007
    Ort
    Bi
    Beiträge
    1.015
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Java - String in String-Array finden

    Hi, also zu deinem Problem möchte ich dir die Möglichkeit geben, die Lösung selber zu verstehen.

    IndexOutOfBounds ist ein Fehler, der bei einem Array, Liste , usw. immer dann auftritt, wenn du auf einen ungültigen Zeiger der Liste zuzugreifen versuchst.

    Code:
    Z.B. ein Array der größe 2 (also Zwei Elemente)
     String[] zweiStrings = new String[] {"eins,"zwei"};
    
    du greifst nun auf diesen Array immer mit Positionszeiger zu, wie du sicher weißt , also sprich
     zweiStrings[0] => eins
     zweiStrings[1] => zwei
    
    So, wenn du nun eine falschen Positionszeiger eingibst kriegst du eine Exception
     zweiStrings[3] => FEHLER!
    Davon aber abgesehen ist es schon ziehmlich böse was du da versucht, du machst in einer FOR-Schleife eine Abfrage, ob dieser String der aktuellen Indexe mit dem Suchstring übereinstimmt, sowas gehört in eine if-Abfrage.
    -> Wenn du nun nichst findest würde übrigens deine Schleife ebenfalls so in den index out of bounds laufen

    Weiterhin machst du keine if-Abfrage bei der zweiten Schleife, du gest die Elemente einfach durch und machst JEDES mal eine Zuweisung zum Rückgabestring
    Geändert von K.Y.L.T. (27.03.2009 um 20:12 Uhr)
    Sämtlicher Code erhebt keinen Anspruch auf syntaktische Korrektheit geschweige denn Ausführbarkeit und ist für die Implementation außerhalb der Beispiele nicht geeignet.

    Kein Support für kommerzielle Scripts | Kein kostenloser Support via ICQ

Ähnliche Themen

  1. Java String in C char über JNI - Java native interface -
    Von Unregistriert im Forum Forum für alle anderen Programmiersprachen
    Antworten: 2
    Letzter Beitrag: 21.02.2009, 15:42
  2. String aufsplitten
    Von anagramm im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 4
    Letzter Beitrag: 10.01.2009, 18:41
  3. String verknüpfen, Array, Zeiger??
    Von Max86 im Forum Forum für alle anderen Programmiersprachen
    Antworten: 6
    Letzter Beitrag: 20.03.2008, 10:22
  4. string zählen
    Von don-golione im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 1
    Letzter Beitrag: 15.10.2006, 17:57
  5. unexpectet T-String
    Von im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 12
    Letzter Beitrag: 10.10.2006, 10:39

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •