Nyckelord: Metoder

Programmera en metod som omvandlar ett ord till fikonspråket
Skriv en metod stringToFikon() som tar en String som inparameter och returnerar motsvarande textsträng på fikonspråket.
Fikonspråket är ett kodspråk grundat på korsvis omkastning av ords stavelser. För att konstruera ett ord på fikonspråket delar man originalordet efter första vokalen (ex. ka | ffe). Man byter därefter ordning på de uppkomna delarna och lägger stavelsen ”fi-” till den första och ”-kon” efter den andra.
- Wikipedia
Exempel med ordet kaffe:
- Ordet kaffe delas i ka- och -ffe
- det kastas om till -ffe och ka-
- fi- och -kon läggs till, vilket ger slutresultatet fiffe kakon.
Ledtråd
Skapa en hjälpmetod isVowel() som avgör om ett tecken är en vokal eller ej.
Skapa även en metod getCharacterFromString() som plockar ut ett tecken från en textsträng på given position. Exempelvis, om getCharacterFromString("kaffe", 2) anropas ska f returneras.
Använd den inbyggda metoden str.substring() för att plocka ut en delsträng från ett ord. Exempelvis str.substring(0, 2) skriver ut ka om str = "kaffe".
Svar
public class Uppgift9 {
public static void main(String[] args) {
String str = "Kaffe";
String fikon = stringToFikon(str);
System.out.println(fikon);
}
public static String stringToFikon(String str) {
for (int i = 0; i < str.length(); i++) {
char ch = getCharacterFromString(str, i);
if (isVowel(ch)) {
String firstPart = str.substring(0, i + 1);
String lastPart = str.substring(i + 1);
return "fi" + lastPart + " " + firstPart + "kon";
}
}
return "";
}
// Returnerar true om en given bokstav är en vokal
public static boolean isVowel(char letter){
// Alla vokaler
switch(letter) {
case 'a':
case 'A':
case 'e':
case 'E':
case 'i':
case 'I':
case 'o':
case 'O':
case 'u':
case 'U':
case 'y':
case 'Y':
case 'å':
case 'Å':
case 'ä':
case 'Ä':
case 'ö':
case 'Ö':
return true;
default:
return false;
}
}
// Plockar ut en bokstav från en given position
public static char getCharacterFromString(String text, int position){
return text.charAt(position);
}
}
Förklaring:
Metoden getCharacterFromString() använder den inbyggda metoden charAt() som är en inbyggd metod i Java som plockar ut ett tecken på en specifik position.
public static char getCharacterFromString(String text, int position){
return text.charAt(position);
}
Metoden isVowel() avgör om ett tecken är en vokal eller inte. Vi använder en switch-sats för att kolla alla möjliga fall av vokaler.
Vi kopplar sedan ihop dessa två metoder för att skapa metoden stringToFikon(). Vi börjar med att loopa igenom tecken för tecken i den givna textsträngen.
for (int i = 0; i < str.length(); i++) {
char ch = getCharacterFromString(str, i);
}
När vi har hittat en vokal plockar vi ut de två delarna av ordet med Javas inbyggda funktion substring(). Vi avslutar metoden med att returnera ordet i fikon-format.
if (isVowel(ch)) {
String firstPart = str.substring(0, i + 1);
String lastPart = str.substring(i + 1);
return "fi" + lastPart + " " + firstPart + "kon";
}
I den här lösningen returneras en tom sträng om ordet saknar vokal. Bestäm gärna en annan tydlig regel och testa även tom sträng samt stora bokstäver.