카테고리 없음

문자열의 모음 수를 세는 Java 프로그램 쉽게 이해하기

코딩하는 욤욤이 2024. 11. 25. 02:25
반응형

문자열의 모음 수를 세는 Java 프로그램

이 프로그램의 목표는 주어진 문자열에 포함된 모음(a, e, i, o, u)의 개수를 계산하는 것입니다. 프로그래밍을 쉽게 이해할 수 있도록, 개념부터 코드의 흐름까지 차근차근 설명드리겠습니다.


1. 문제 이해하기

  • 문제: 입력받은 문자열에서 몇 개의 모음이 들어있는지 세어야 합니다.
  • 모음: 영어 알파벳 중 a, e, i, o, u는 모음입니다. 대문자(A, E, I, O, U)도 포함됩니다.
  • 예시:
    • 문자열: hello world
      • 모음: e, o, o
      • 개수: 3

2. 어떻게 해결할까요? (알고리즘 설계)

  1. 문자열 입력받기: 사용자가 문자열을 입력하면 프로그램이 이를 읽습니다.
  2. 문자 하나씩 확인하기: 문자열의 각 문자를 하나씩 검사합니다.
  3. 모음인지 확인: 문자가 a, e, i, o, u인지 확인합니다. 대문자(A, E, I, O, U)도 포함합니다.
  4. 모음이면 개수 증가: 모음을 발견할 때마다 카운트를 하나 증가시킵니다.
  5. 결과 출력: 모음의 총 개수를 사용자에게 보여줍니다.

3. Java 코드 작성

import java.util.Scanner; // 사용자 입력을 받기 위해 Scanner 클래스 사용

public class VowelCounter {
    public static void main(String[] args) {
        // 1. 사용자로부터 문자열 입력받기
        Scanner scanner = new Scanner(System.in); // Scanner 객체 생성
        System.out.println("문자열을 입력하세요: ");
        String input = scanner.nextLine(); // 문자열 입력받기

        // 2. 모음 개수를 저장할 변수 선언
        int vowelCount = 0; // 모음 개수 초기값은 0

        // 3. 문자열의 각 문자를 하나씩 검사
        for (int i = 0; i < input.length(); i++) {
            char c = input.charAt(i); // i번째 문자를 가져옴
            // 4. 해당 문자가 모음인지 확인 (대소문자 모두 체크)
            if (c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u' || 
                c == 'A' || c == 'E' || c == 'I' || c == 'O' || c == 'U') {
                vowelCount++; // 모음이면 개수 증가
            }
        }

        // 5. 결과 출력
        System.out.println("모음의 개수는: " + vowelCount + "개입니다.");
    }
}

4. 코드 해설

1. 입력받기

Scanner scanner = new Scanner(System.in);
String input = scanner.nextLine();
  • Scanner는 사용자가 입력한 값을 읽는 도구입니다.
  • scanner.nextLine()은 사용자가 입력한 문자열 전체를 가져옵니다.
 

2. 반복문으로 문자열 탐색

for (int i = 0; i < input.length(); i++) {
    char c = input.charAt(i);
}
  • for 문은 문자열의 길이(input.length())만큼 반복합니다.
  • input.charAt(i)는 문자열에서 i번째 문자를 가져옵니다.

3. 모음 확인

if (c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u' || 
    c == 'A' || c == 'E' || c == 'I' || c == 'O' || c == 'U') {
    vowelCount++;
}
  • if 조건문으로 현재 문자가 모음인지 확인합니다.
  • ||는 "또는"을 의미합니다. 예를 들어 c == 'a' || c == 'e'는 "c가 'a'이거나 'e'이면 참"이라는 뜻입니다.
  • 대문자와 소문자를 모두 비교하여 체크합니다.
 

4. 결과 출력

System.out.println("모음의 개수는: " + vowelCount + "개입니다.");

모음 개수를 출력합니다. +를 사용해 문자열과 숫자를 합칩니다.


5. 프로그램 실행 예시

 

입력 예시 1

문자열을 입력하세요: hello world
 
 

출력 결과 1

모음의 개수는: 3개입니다.

 

입력 예시 2

문자열을 입력하세요: JAVA Programming

 

 

출력 결과 2 

모음의 개수는: 5개입니다.

6. 핵심 개념 정리

  • 문자열(String): 문자들이 모여서 만들어진 데이터입니다.
  • 반복문(for): 일정한 작업을 반복 실행합니다.
  • 조건문(if): 특정 조건을 만족할 때 실행됩니다.
  • 문자(char): 문자열의 한 글자를 나타냅니다.
  • 배열처럼 다루기: 문자열도 각 문자에 순서대로 접근할 수 있습니다.

7. 확장 가능성

  • 사용자가 입력한 문자열에 숫자나 특수문자가 포함되어도 문제없이 작동합니다.
  • 모음을 다른 언어(예: 한국어 모음 ㅏ, ㅑ, ㅓ, ㅕ)로 확장할 수도 있습니다.

이 프로그램은 간단하지만 문자열 처리의 기본 원리를 배우는 데 매우 유용합니다. 😊

반응형