Veröffentlicht 29. Oktober 200321 j Hallo allerseits, viele von Euch kennen doch sicherlich das Lied von den drei Chinesen mit dem Kontrabass, gell?! Für dich "Nichtwissenden": die Vokale im Lied werden bei jeder neuen Strophe durch ä, ü usw ersetzt. Hier ist mein Code, zunächst mal fürs "ä"... public class Chinesen { public static void main(String[] args) { String value = ""; String s1 = "Drei Chinesen mit dem Kontrabass\n"; String s2 = "Saßen auf der Strasse\n"; String s3 = "und erzählten sich was.\n"; String s4 = "Da kam die Polizei:\n"; String s5 = "Ja, was ist denn das?\n"; StringTokenizer tokenizer = new StringTokenizer(s1 + s2 + s3 + s4 + s5 + s1, "aeiou" ); while ( tokenizer.hasMoreTokens() ) { String tmp = tokenizer.nextToken().toString(); tmp = tmp.replaceAll("aeiou", ""); value = value + "ä" + tmp; } System.out.println(value); } } Mein Problem ist nun, dass er das zwar richtig umsetzt, aber genau vor den Anfang des Liedes ein ä setzt. Die erste Zeile sieht dann so aus: äDrä Chänäsän mät däm Känträbäss :cool: Weiß jemand, woher das ä am Anfang kommt? Dankeschön, Gruß Silvie
29. Oktober 200321 j Is doch logisch. value = value + "ä" + tmp; Beim ersten Durchlauf der Schleife: value = ""; folglich: value = "" + "ä" + "Drä"; Alles klar?
29. Oktober 200321 j Servus Silvie, ist zwar OT, aber wenn Dein Programm nicht nur eine Übungsaufgabe für den StringTokenizer war, dann geht das Ganze auch einfacher (schneller) public class Chinesen { public static void main(String[] args) { String s1 = "Drei Chinesen mit dem Kontrabass\n"; String s2 = "Saßen auf der Strasse\n"; String s3 = "und erzählten sich was.\n"; String s4 = "Da kam die Polizei:\n"; String s5 = "Ja, was ist denn das?\n"; String lied = s1 + s2 + s3 + s4 + s5 + s1; System.out.println(lied.replaceAll("[aeiou]", "ä")); } } [/PHP] Sollte es doch bloss eine Übung gewesen sein, dann habe ich das hier nie geschrieben. Peter
29. Oktober 200321 j Hab's jetzt so gemacht: StringTokenizer tokenizer = new StringTokenizer(s1 + s2 + s3 + s4 + s5 + s1, "aeiou" ); int index = 0; int count = tokenizer.countTokens(); while ( tokenizer.hasMoreTokens() ) { index++; String tmp = tokenizer.nextToken().toString(); tmp = tmp.replaceAll("aeiou", ""); if(index < count) value = value + tmp + "ä"; else value = value + tmp; } Jetzt klappt es :marine @kingofbrain: Es ist eine Übungsaufgabe... Dankeschön an Euch zwei!! Gruß Silvie
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.