xonix Geschrieben 6. April 2009 Geschrieben 6. April 2009 Guten Tag, ich brauche Hilfe bei einer Programmieraufgabe. Urmel aus dem Eis ich benötige dazu ein paar Befehle. Die Aufgabe lautet Kennen sie Urmel aus dem Eis? In diesen Kinderbuch ...... Die Tiere haben einen Sprachfehler der Piguin kann das "sch" nicht sprechen er sagt immer "pf". Der Waran sagt statt "z" immer "tsch" Der Seeelefant wird "i", "ie" und "e" zu "ö","ei" wird zu "eu" und "u" wird zu "o" aber nicht "au". Ein Beispiel:" Ös könntö schön seun, traurögö Lödör zosammön zo söngön" Sehr komplex da ich für jedes Tier eine Unterklasse machen muss und die Sprachfehler sollen "vernuschelt" auf der Konsole ausgegeben werden. Ich danke schon mal im Voraus und es sind keine Hausaufgaben. Zitieren
Klotzkopp Geschrieben 6. April 2009 Geschrieben 6. April 2009 Wir haben ein Java-Forum -> Verschoben. Da es dort allerdings von "Java- Programmieraufgaben" nur so wimmelt, mache ich den Threadtitel noch ein wenig aussagekräftiger. Beim nächsten Mal bitte selbst dran denken. Davon abgesehen wäre es hilfreich, wenn du schilderst, wo jetzt konkret das Problem ist. Kannst du Teile von Strings ersetzen? Zitieren
xonix Geschrieben 6. April 2009 Autor Geschrieben 6. April 2009 Aslo mein Problem besteht darin das ich gerade versuche Aufgabe a Definieren sie Dazu Unterklassen Pinguin, Waran und SeeElefant, die die Methode SPRECHE passend implementieren d.h. jegliche Texteingabe wird passend zum jeweiligen Tier entsprechend dem jeweiligen SPrachfehler "vernuschelt" auf der Konsole ausgeben. Aufgabe B.) Zerlegen sie ihre Lösung in 2 Pakete Das 1. Paket Code: tierschule soll dÃe Klassen TitiwuTest und sprechendes Tier enthalten. Das 2 Paket soll tiere heißen dieses soll die Klassen Pinguin Waran und SeeElefant umfassen. Zitieren
Klotzkopp Geschrieben 6. April 2009 Geschrieben 6. April 2009 "Das Problem besteht darin, dass du versuchst", und dann wiederholst du die Aufgabenstellung. :confused: Ist da ein Copy&Paste-Fehler passiert? Weißt du, wie man eine Klasse anlegt? Zitieren
flashpixx Geschrieben 6. April 2009 Geschrieben 6. April 2009 Naja, ich würde sagen, dass man ja so eine Aufgabe bekommt, wenn entsprechenden Wissen vermittelt wurde, außerdem kann man sich ja mal mit Hilfe von Google über die String-Verarbeitung in Java informieren Phil Zitieren
xonix Geschrieben 6. April 2009 Autor Geschrieben 6. April 2009 Ja und ich habe aber keine Vorahnung von JAVA. Jetzt könnt ihr mir richtig helfen ich schreibe euch mal was hin. text = text.replaceAll("i","ö"); text = Text.replaceAll("e","ö"); text = text.replaceAll("ie","ö"); text = text.replaceAll("ei","eu"); text = text.replaceAll("u","o"); text = text.replaceAll("I","Ö"); text = text.replaceAll("Ie","Ö" ); text = text.replaceAll("E","Ö"); text = text.replaceAll("Ei","Eu"); text = text.replaceAll("U","O"); Er schreibt mir aber nicht das aus was ich will wie kann ich das anders schreiben das es am Ende stimmt? Zitieren
flashpixx Geschrieben 6. April 2009 Geschrieben 6. April 2009 (bearbeitet) Du hast Dich darüber informiert was "replaceAll" macht bzw. welche Parameter es erwartet? String ReplaceAll Sagt Dir, dass der erste Parameter ein regulärer Ausdruck ist. Für einzelne Zeichen hilft: String Replace Du benötigst beides. Zusätzlich sollst Du das ganze in Klassen kapseln, sprich Du hast eine Klasse "Tier" z.B. mit der Methode "sagt" und nun musst Du eben 3 Klassen davon ableiten, in denen Du die Methode "sagt" überlädst und in der Du dann die Ersetzung des eingegebenen Textes programmierst. Somit spricht ein "Tier" normal und bei den genannten Tieren muss eben eine Stringersetzung erfolgen Phil Bearbeitet 6. April 2009 von flashpixx Links Zitieren
unbenannt Geschrieben 6. April 2009 Geschrieben 6. April 2009 text = text.replaceAll("i","ö"); text = Text.replaceAll("e","ö"); text = text.replaceAll("ie","ö"); Rein logisch betrachtet würde dies ohnehin nur unsinnige Ausgaben provozieren, da "ie" bei vorheriger Ersetzung von "i" und "e" niemals gefunden werden kann. Zitieren
xonix Geschrieben 6. April 2009 Autor Geschrieben 6. April 2009 Ja abber dann schreibt er mir auf der Konsole ein Doppel Ö aus und das ist FALSCH. package test; public class Seeelefant extends SprechendesTier { public Seeelefant(String name) { super(name); } public String spreche(String text) { System.out.println(text); text = text.replaceAll("ie","ö"); text = text.replaceAll("e","ö"); text = text.replaceAll("i","ö"); text = text.replaceAll("ei","eu"); text = text.replaceAll("u","o"); text = text.replaceAll("I","Ö"); text = text.replaceAll("Ie","Ö" ); text = text.replaceAll("E","Ö"); text = text.replaceAll("Ei","Eu"); text = text.replaceAll("U","O"); System.out.println(text); return text; Hier mal eine fast ganze Klasse also da fehlen nur noch die Klammern. Wie kann man das richtig ausgeben? Zitieren
Thanks-and-Goodbye Geschrieben 6. April 2009 Geschrieben 6. April 2009 Ja abber dann schreibt er mir auf der Konsole ein Doppel Ö aus und das ist FALSCH. Nö, vollkommen logisch. Du ersetzt bei IE erst I durch Ö: ÖE Dann ersetzt du bei ÖE das E durch Ö: ÖÖ Zitieren
xonix Geschrieben 6. April 2009 Autor Geschrieben 6. April 2009 ich bin heute schwer von Begriff erklär mir das nochmal, chief. Zitieren
xonix Geschrieben 6. April 2009 Autor Geschrieben 6. April 2009 ok das wäre erledigt jetzt stimmt nur noch eins nicht. er schreibt von Sein - Söön FALSCH (schreibt mir aus!!!!) Sein - seun RICHTIG Wie behebe ich den Fehler??????? Zitieren
kingofbrain Geschrieben 6. April 2009 Geschrieben 6. April 2009 Dazu müsste man wissen, in welcher Reihenfolge Du die Ersetzung durchführst. Ich tippe darauf, dass Du wieder einzelne Buchstaben vor einer Gruppe ersetzt. Peter Zitieren
xonix Geschrieben 6. April 2009 Autor Geschrieben 6. April 2009 package test; public class Seeelefant extends SprechendesTier { public Seeelefant(String name) { super(name); } public String spreche(String text) { System.out.println(text); text = text.replaceAll("ie","ö"); text = text.replaceAll("e","ö"); text = text.replaceAll("i","ö"); text = text.replaceAll("ei","eu"); text = text.replaceAll("u","o"); text = text.replaceAll("I","Ö"); text = text.replaceAll("Ie","Ö" ); text = text.replaceAll("E","Ö"); text = text.replaceAll("Ei","Eu"); text = text.replaceAll("U","O"); System.out.println(text); return text; So mache ich das. Kannst du mir helfen??? Zitieren
Thanks-and-Goodbye Geschrieben 6. April 2009 Geschrieben 6. April 2009 So mache ich das. Kannst du mir helfen??? Satzzeichen sind keine Rudeltiere. Du machst genau den gleichen Fehler wie ich ihn dir oben erklärt habe. EI soll EU werden, du ersetzt aber vorher schon E durch Ö und I durch Ö. Wo soll dann die Ersetzung EI noch was finden? Zitieren
xonix Geschrieben 6. April 2009 Autor Geschrieben 6. April 2009 Nö, vollkommen logisch. Du ersetzt bei IE erst I durch Ö: ÖE Dann ersetzt du bei ÖE das E durch Ö: ÖÖ das klingt für mich nicht logisch schreib mal in JAVA!! Zitieren
Klotzkopp Geschrieben 6. April 2009 Geschrieben 6. April 2009 Du kannst dieses Problem nicht durch einfache Aneinanderreihung von replaceAll-Aufrufen lösen, weil du entweder später noch notwendige Konvertierungen verhinderst oder bereits umgewandelte Teilstrings nochmal umwandelst (so kommt es zu dem Doppel-Ö). Du könntest das in zwei Stufen machen, indem du zuerst die zu ersetzenden Teilstrings durch Platzhalter ersetzt, die im Text selbst nicht auftauchen können, und dann im zweiten Durchgang diese Platzhalter durch die neuen Teilstrings. Aber auch dabei musst du auf die Reihenfolge achten. Und du musst auch Teilstrings "temporär" ersetzen, die nicht ersetzt werden sollen, wohl aber Teile davon (konkret: au). Zitieren
kingofbrain Geschrieben 6. April 2009 Geschrieben 6. April 2009 Servus, tu Dir doch einen Gefallen und teste das ganze mal in einem Schreibtischtest. Setz Dich also mit einem Testwort hin und ersetze dieses anhand Deiner aufgeschriebenen Regeln. Dann wird Dir sofort klar, was Klotzkopp schon ein paar mal versucht hat, Dir mitzuteilen. Peter Zitieren
xonix Geschrieben 6. April 2009 Autor Geschrieben 6. April 2009 Habe ich schon probiert, aber er will die Vertauschuung nicht akzeptieren. ich habe das ei vorne hingesetzt und denn Rest da hinter. Es funktioniert immer noch nicht. Was kann ich tun???? Zitieren
Klotzkopp Geschrieben 6. April 2009 Geschrieben 6. April 2009 Habe ich schon probiert,Wenn du dich auf einen bestimmten Vorschlag beziehst, solltest du ihn zitieren, damit klar ist, was du probiert hast. aber er will die Vertauschuung nicht akzeptieren.Wer ist "er"? kingofbrains Rat war, das zunächst mal mit Bleistift und Papier zu machen. ich habe das ei vorne hingesetzt und denn Rest da hinter.Und ich habe dir schon gesagt, dass das nicht funktionieren wird. Es funktioniert immer noch nicht. Was kann ich tun????Erstens weniger Fragezeichen machen. Zweitens aufhören mit Rumprobieren. Drittens anfangen, sich ein paar Gedanken zu machen. Zitieren
xonix Geschrieben 7. April 2009 Autor Geschrieben 7. April 2009 OK ich danke dir klotzkopp. Ich habe eine Idee ein Kumpel hat mich daruf gebracht Reguläre Ausdrücke zu verwenden. Wo finde ich den solche ? Zitieren
Klotzkopp Geschrieben 7. April 2009 Geschrieben 7. April 2009 Ich habe eine Idee ein Kumpel hat mich daruf gebracht Reguläre Ausdrücke zu verwenden. Wo finde ich den solche ? Der klassische Fall: Jemand hat ein Problem, und denkt: "Das mache ich mit Regular Expressions". Jetzt hat er zwei Probleme. Du kannst das mit RegEx lösen. Ob das aber unbedingt einfacher wird, möchte ich bezweifeln. Lesson: Regular Expressions (The Java™ Tutorials > Essential Classes) Zitieren
kingofbrain Geschrieben 7. April 2009 Geschrieben 7. April 2009 Ich schließe mich wieder Klotzkopp an und möchte noch mal auf meinen Tipp hinweisen. Löse das Problem erst im Kopf und mach Dir danach Gedanken zur Umsetzung mit einer bestimmten Technologie. Ansonsten wird es weder mit RegEx, noch mit der Ersetzung, die Du bisher verwendest (sind übrigens auch RegEx) etwas. Peter Zitieren
xonix Geschrieben 20. April 2009 Autor Geschrieben 20. April 2009 OK das habe ich jetzt hinbekommen. Andere Frage Wie kann ich den Namen eines Textfeldes ändern? Zitieren
Klotzkopp Geschrieben 20. April 2009 Geschrieben 20. April 2009 Andere Frage -> anderer Thread. Oder hat das noch etwas mit dem "Sprachfehler" zu tun? Die Threads sollen hier themenzentriert sein, nicht benutzerzentriert. Wenn deine nächste Frage also nichts mit der vorherigen zu tun hat, mach bitte einen neuen Thread auf. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.