Ich muss eine Methode schreiben, die einen String aufnimmt und einen neuen String zurückgibt, der alle Vokale dupliziert und ein "b" dazwischen legt. Einzige Ausnahme sind Diphtonge, bei denen "ab" vor dem Diphton stehen sollte.Dupliziere einen Vokal in String und füge einen String dazwischen ein
Zum Beispiel: „Hallo“ zurückkehren würde „hebellobo“ „Hören“ zurückkehren würde „habearing“
Ich habe stundenlang mit meinem Code experimentiert, aber ich bin noch nichts getan. Nun, nichts, aber kann es nicht richtig für Vokale laufen lassen und kam überhaupt nicht zu den Diphtongs. Hier ist mein Code:
static Scanner sc = new Scanner(System.in);
public static void main(String[] args)
{
System.out.print("Enter a string: ");
String s = sc.nextLine();
String originalString = s;
for (int i = 0; i < s.length(); i++)
{
char c = s.charAt(i);
if ((c == 'A') || (c == 'a') || (c == 'E') || (c == 'e') || (c == 'I') || (c == 'i') || (c == 'O')
|| (c == 'o') || (c == 'U') || (c == 'u'))
{
String front = s.substring(0, i);
String back = s.substring(i + 1);
s = front + c + "b" + back;
}
}
System.out.println(originalString);
System.out.println(s);
}
Dankbar für jede Hilfe!
Dank Ihrer Hilfe habe ich jetzt den folgenden Code (ohne Scanner):
public static boolean isVowel(char c) {
// TODO exercise 1 task b) part 1
if (c == 'a' || c == 'A' || c == 'Ä' || c == 'e' || c == 'E' || c == 'i' || c == 'I' || c == 'o' || c == 'O'
|| c == 'Ö' || c == 'u' || c == 'U' || c == 'Ü') {
return true;
} else {
return false;
}
}
public static String toB(String text) {
// TODO exercise 1 task b) part 2
StringBuilder b = new StringBuilder();
for (int i = 0; i < text.length() - 1; i++) {
char current = text.charAt(i);
char next = text.charAt(i + 1);
if (isVowel(current)) {
if (isVowel(next)) {
// 1 - Is a vowel followed by a vowel
// Prepend b
b.append("b");
// Write current
b.append(current);
// Write next
b.append(next);
i++; // Skip next vowel
} else {
// 2 - Is a vowel followed by a consonant
b.append(current);
b.append("b");
b.append(current);
}
} else {
// 3 - Is a consonant
b.append(current);
}
}
for (int i = 0; i < text.length() - 1; i++) {
char last = text.charAt(text.length() - 1);
char current = text.charAt(i);
if (isVowel(last)) {
// Case 1
b.append(current);
b.append("b");
b.append(current);
// Case 2 is not possible for last letter
} else {
// Case 3
b.append(last);
}
}
// Here b.toString() is the required string
return b.toString();
}
Wenn Sie das Wort „Mutter“ zum Beispiel gesagt, der Ausgang ist „Mobotheberrrrr“, die völlig in Ordnung ist, mit der Ausnahme dass es aus irgendeinem Grund den letzten Buchstaben "r" wiederholt. Eingabe "Ziel" führt leider zu Ausgabe "Gboalll".
Sollte das nicht "habearibing" sein? – Henry
Was ist Ihre Interpretation von 'diphthong'? Ist es "irgendwelche" zwei aufeinander folgende Vokale oder nur diese zwei aufeinander folgenden Vokale, die eine bestimmte Bedingung erfüllen? – VHS
@Henry Du hast vollkommen Recht, sorry :) –