Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
ich möchte gerne einen Text mit dem "Scanner" in die Konsole eingeben. Und dieser Text soll verändert werden, indem vor und nach jedem Vokal ein "b" gesetzt wird. Ich habe mit replaceAll rum experimentiert, aber keine vernünftige Lösung gefunden. Ich habe es nur hinbekommen einen Buchstaben zu ersetzen. Aber wie kann ich alle Umlaute ersetzen und dann den String ausgeben?
Java:
import java.util.Scanner;
public class CopyOfWoerterzaehlen {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String s = scanner.next();
}
private static boolean isVovel(char c) {
if (c == 'a' | c == 'e' | c == 'i' | c == 'o' | c == 'u' | c == 'ä'
| c == 'ö' | c == 'ü' | c == 'A' | c == 'E' | c == 'I'
| c == 'O' | c == 'U' | c == 'Ä' | c == 'Ö' | c == 'Ü') {
return true;
} else {
return false;
}
}
private static void getIsVovel(char c) {
System.out
.println("Ist der Buchstabe " + '"' + c + '"' + " ein Vokal?");
if (isVovel(c) == true) {
System.out.println("Antwort: true");
} else {
System.out.println("Antwort: false");
}
}
private static void bSprache(String s) {
}
}
Hallo, deine main-Methode macht nichts relevantes, ist dass so gewollt?
Zu deinen Fragen:
- Guck mal nach StringBuilder, String.concat und String to char-Array. Da hast du die Möglichkeiten, deinen String nach belieben umzubauen.
- Wenn du etwas ersetzen möchtest, bist du mit replaceAll gut unterwegs: s.replaceAll("oe", "ö");
Du kannst natürlich auch dein Vokal durch "b"+Vokal+"b" ersetzen.
Also es hat geklappt, wenn ich
s.replaceAll(.......
alle untereinander geschrieben habe.
Eigentlich will ich aber mit der Methode isVovel überprüfen ob ein Vokal drin ist und dann dieses Vokal ersetzen.
Dafür habe ich weiter unten eine Methode bSprache erstellt.
Am Ende soll als Ausgabe der normale Text stehen, den man in den Scanner eingibt und danach soll man den Text in die bSprache übersetzen.
Ich sitze schon seit gestern dran, aber komme nicht weiter.
Also es hat geklappt, wenn ich
s.replaceAll(.......
alle untereinander geschrieben habe.
Eigentlich will ich aber mit der Methode isVovel überprüfen ob ein Vokal drin ist und dann dieses Vokal ersetzen.
Das ist es ja gerade. Ich möchte es nachprogrammieren, aber mir fehlt der Ansatz.
isVovel(char c) liefert mir ja entweder true oder false zurück. Und ich muss ja als Paramater in isVovel(char c) einen Buchstaben eingeben.
Wie kann ich aber nun diese Methode so verknüpfen, damit er den eingescannten Text nach den Vokalen abfrägt und dann die Buchstaben ersetzt werden können?
Da du nur eine Klasse benutzt hast, musst du von dieser ein Objekt erstellen bzw. die Klasse selber aufrufen und deine geschriebene Methode ausführen.
Kurz:
Java:
new CopyOfWoerterzaehlen().isVovel();
Aber vergiss nicht, das die Methode einen Boolean zurückgibt, den du deklarieren musst und einen Char als Übergabewert verlangt.
Und schau dir bitte noch einmal falls du es noch nicht getan hast Objektorientierung an. Am besten in dem Javavideokurs.de *hust* Ich möchte Zugang *hust*
private static void bSprache(String s) {
StringBuffer sb_result = new StringBuffer();
// for-Schleife ueber s.length()
// s.charAt( i ) pruefen, isVovel?
// wenn ja: hänge 'b', den Vokal, und wieder 'b' an sb_result an
// wenn nein: hänge nur den Buchstaben an sb_result an
// ende_for
// wandle sb_result in einen String und gib ihn zurück
}
Diese Vorgehensweise könnte man auch "Ändern beim Kopieren" nennen. Man kopiert Buchstabe um Buchstabe aus dem alten String s in einen neuen (sb_result), und prüft/ändert dabei.