Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

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.

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?

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.

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

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?

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 von flashpixx
Links

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.

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?

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 Ö: ÖÖ

ich bin heute schwer von Begriff erklär mir das nochmal, chief.

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???????

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

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???

So mache ich das.

Kannst du mir helfen???

Satzzeichen sind keine Rudeltiere. :rolleyes:

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?

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!!

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).

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

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????

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.

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 ?

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)

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

  • 2 Wochen später...

OK das habe ich jetzt hinbekommen.

Andere Frage

Wie kann ich den Namen eines Textfeldes ändern?

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.