ÖVNINGSUPPGIFT

Uppgift 2 - Antal vokaler

Försök själv först. Ledtrådar och facit finns längre ner – helt utan inloggning.


Nyckelord: Metoder

data i molnet

Uppgift 2 - Antal vokaler

Skapa en metod som givet en bokstav, avgör om det är en vokal eller ej. Skapa sedan ett program som tar en textsträng som input av en användare och beräknar hur många vokaler textsträngen innehåller. För att lösa uppgiften behöver du dessutom skapa en metod som givet en textsträng, plockar ut en godtycklig bokstav från textsträngen.

Utgå från programmet:

public class MetoderUppgift2 {
    public static void main(String[] args) {

    }
}

Exempel, skriver användaren in meningen:

Programmera Java är kul!

ska programmet skriva ut:

I textsträngen "Programmera Java är kul!" finns det 8 vokaler.

Programmet ska även klara av att hantera stora och små bokstäver.

Ledtråd 1

En switch-sats lämpar sig bra för att avgöra om en bokstav är en vokal eller ej.

Ledtråd 2

Du kan få ut längden på en textsträng med koden:

int length = text.length();

där text är en textsträng av datatypen String.

Ledtråd 3

Du kan plocka ut en godtycklig bokstav ur en textsträng med koden:

text.charAt(position);

Där text är textsträngen och position är positionen på den bokstav du vill få ut. Exempelvis är text.charAt(0) den första bokstaven i textsträngen och text.charAt(text.length() -1) den sista.

Svar
import java.util.Scanner;

public class MetoderUppgift2 {
    public static void main(String[] args) {

        // Frågar om en input och sparar meningen i variabeln text
        Scanner input = new Scanner(System.in);
        System.out.println("Ange en textsträng: ");
        String text = input.nextLine();
        
        // Håller räkningen på antal vokaler i meningen
        int nmbrOfVowels = 0;


        // Loopa igenom alla bokstäver i meningen
        for(int i = 0; i < text.length(); i++){
            
            // Plocka ut nästa bokstav i meningen
            char character = getCharacterFromString(text, i);
            
            // Avgör om bokstaven var en bokstav eller ej och håll räkningen
            if(isVowel(character)){
                nmbrOfVowels++;
            }
        }


        System.out.println("I textsträngen \"" + text + "\" finns det " + nmbrOfVowels + " vokaler.");


    }

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

I metoden isVowel() använder vi en switch-sats för att avgöra om en given bokstav är en vokal eller inte. Metoden returnerar en boolean (true eller false) och tar in en character som input.

Metoden getCharacterFromString() returnerar en character och tar en textsträng och en int som input till metoden.

När vi har tagit emot en mening från användaren, loopar vi igenom meningen och håller räkningen på antal vokaler i meningen.

Tillbaka till översikt