Schleifendurchlauf

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Die Forschleife im Konstrukto läuft irgendwie falsch ...ausgeben soll sie jedes einzelne Wort des Strings aber des tut sie net ...bitte hilf mal einer;.-)




Code:
public class Worttrenner {
    
    public String[] woerter;
    
    public String trennzeichen;
    public String text;
    
    
    public Worttrenner(String text, String trennzeichen) {
        
        this.trennzeichen = trennzeichen;
        this.text = text;
        int[] trennpunkte = ermittleTrennpunkte();
        
        woerter = new String[wortZaehler()];
        
        if (trennpunkte[0] != 0) {
                woerter[0] = text.substring(0, trennpunkte[0]);
        }
        
        for (int i = 1; i < woerter.length; i = i + 1) {
            for (int j = 1; j < trennpunkte.length; j = j + 1) {
                if (((trennpunkte[j]) - (trennpunkte[j - 1])) != -1) {
                    woerter[i] = text.substring(trennpunkte[j - 1] + 1, trennpunkte[j]);   
                }
            }break;
        }
        
//        if ((text.length() - 1) - (trennpunkte[trennpunkte.length - 1]) > 1) {
//            woerter[woerter.length - 1] = text.substring(trennpunkte[trennpunkte.length -1], text.length() -1);
//        }
    }
    
    
    public int[] ermittleTrennpunkte() {
    
        int[] trennpunkte;
        
        int zaehler = 0;
        
        for (int i = 0; i < text.length(); i = i + 1) {
            for (int j = 0; j < trennzeichen.length(); j = j + 1) {
                if (text.charAt(i) == trennzeichen.charAt(j)) {
                    zaehler = zaehler + 1;
                }
            }
        }
        
        trennpunkte = new int[zaehler];
        int position = 0;
        
        for (int i = 0; i < text.length(); i = i + 1) {
            for (int j = 0; j < trennzeichen.length(); j = j + 1) {
                if (text.charAt(i) == trennzeichen.charAt(j)) {
                    trennpunkte[position] = i;
                    position = position + 1;
                }
            }
        }
        return trennpunkte;
    }
    
    
    public int wortZaehler() {
    
        int anzahl = 0;
        int trennung[] = ermittleTrennpunkte();
        
        if (trennung[0] != 0) {
            anzahl = anzahl + 1;
        }
        
        for (int i = 0; i < trennung.length - 1; i = i + 1) {
            if ((trennung[i + 1] - trennung[i]) > 1) {
                anzahl = anzahl + 1;
            }
        }
        
        if (((text.length() - 1) - (trennung[trennung.length - 1])) > 1) {
            anzahl = anzahl + 1;
        }
        return anzahl;
    }
    
    
    public void gibAus() {
        
        int[] testausgabe = ermittleTrennpunkte();
        for (int i = 0; i < testausgabe.length; i = i + 1) {
            System.out.println(testausgabe[i]);
        }
    }
    
    public void gibArray() {
    
        for (int i = 0; i < woerter.length; i = i + 1) {
            System.out.println(woerter[i]);
        }
    }
    
    public static void main(String[] args) {
        
        Worttrenner test = new Worttrenner("Hinter eines Baumes Rinde ... (H. Erhardt)",  ") ,.");
//        System.out.println(test.ermittleTrennpunkte());
        test.gibAus();
//        System.out.println(test.wortZaehler());
        test.gibArray();
//        System.out.println(test.ermittleSprungstellen());
    }
    
}
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Variable ändern bei jedem Schleifendurchlauf Allgemeine Java-Themen 32

Ähnliche Java Themen

Neue Themen


Oben