개요
Java에서 문자열에 포함된 모음(a, e, i, o, u)의 개수를 세는 방법을 알아보겠습니다. 핵심 원리는 매우 간단합니다. 문자열을 한 글자씩 순회하면서 해당 문자가 모음에 해당하는지 검사하고, 모음이라면 카운트 값을 1씩 증가시키는 것입니다.
구현 단계
먼저 다음과 같은 문자열이 있다고 가정해 보겠습니다.
String myStr = "Jamie";
모음 개수를 저장할 변수 count를 0으로 초기화한 뒤, 향상된 for문(for-each)을 활용해 문자열의 모든 문자를 하나씩 확인하며 모음 여부를 판별합니다.
for(char ch : myStr.toCharArray()) {
ch = Character.toLowerCase(ch);
if(ch == 'a' || ch == 'e' || ch == 'i' || ch == 'o' || ch == 'u') {
++count;
}
}여기서 Character.toLowerCase() 메서드로 모든 문자를 소문자로 변환하는 이유는 대문자 모음(A, E, I, O, U)까지 한 번에 처리하기 위함입니다. 덕분에 조건문을 훨씬 간결하게 작성할 수 있습니다.
전체 예제 코드
다음은 문자열에서 모음의 개수를 세는 완전한 Java 프로그램입니다.
public class Demo {
public static void main(String[] args) {
String myStr = "Jamie";
int count = 0;
System.out.println("String = "+myStr);
for(char ch : myStr.toCharArray()) {
ch = Character.toLowerCase(ch);
if(ch == 'a' || ch == 'e' || ch == 'i' || ch == 'o' || ch == 'u') {
++count;
}
}
System.out.println("Vowels = "+count);
}
}실행 결과
String = Jamie Vowels = 3
위 예제에서 문자열 "Jamie"에는 i, a, e 총 세 개의 모음이 포함되어 있으므로 결과값으로 3이 출력됩니다. 이처럼 toCharArray()와 toLowerCase()만 활용하면 별도의 라이브러리 없이도 모음 개수를 손쉽게 계산할 수 있습니다.