Gyakorlati alapok

Különutas betűszámláló teljes bekéréssel
 

Ebben a rövid fejezetben bekérünk a felhasználótól egy tetszőleges szót, majd egy karaktert és megnézzük, hogy a szóban a karakter hányszor fordul elő. A kódműködtető funkciókat megpróbáljuk a fejezetcsomag alapelveihez mérten egymástól teljesen elkülöníteni, azaz külön, jól átgondolt metódusokba csoportosítani. A main() főprogram -mint eleddig mindig-, most is főmetódusként, egyfajta kontroller szerepet játszik, amely a végső futtatásért felel. Tervezésünk eredménye a következő metódusokban manifesztálódhat (hiszen létezhet másféle megoldás is):

A metódusok elnevezésekor ügyeltünk a releváns konvenciókra (Az adatok, metódusok elnevezésének problémái című fejezet alapján):

Nézzük meg a futtatható Java-kódot:

 

www.informatika-programozas.hu - Futtatható Java-kód!

 

 

 

 

 

 

 

 

import java.util.Scanner;

public class Main {

static Scanner scanner = new Scanner(System.in);

public static void messages(String message) {
    System.out.println(message);
}

public static String inputString() {
    messages("Kerem, hogy adja meg a szot!");
    String inputStr = scanner.nextLine();
    return inputStr;
}

public static char inputCharacter() {
    messages("Kerem, hogy adja meg a keresett karaktert!");
    String inputStr = scanner.nextLine();
    char inputChar = inputStr.charAt(0);
    return inputChar;
}

public static int countCharacter(String inputStr, char inputChar) {
    int number = 0;
    for(int i = 0; i < inputStr.length(); i++) {
    if(inputStr.charAt(i) == inputChar) {
        number++;
        }
    }
    return number;
}

public static void main(String[] args) {
    String inputStr = inputString();
    char inputChar = inputCharacter();
System.out.println("A keresett szoban (" + inputStr + ") a(z) '"

    + inputChar + "' karakter elofordulasa: "
    + countCharacter(inputStr, inputChar));
    }
}
 

Végeredmény:

Kerem, hogy adja meg a szot!
abrakadabra
Kerem, hogy adja meg a keresett karaktert!
a
A keresett szoban (abrakadabra) a(z) 'a' karakter elofordulasa: 5