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());
}
}