Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

JavaScript에서 문자열의 알파벳 개수 계산하는 방법

JavaScript에서 문자열을 입력받아 그 안에 포함된 알파벳(대문자 또는 소문자)의 개수를 세는 함수를 작성해 보겠습니다. 공백, 숫자, 특수문자 등은 제외하고 순수하게 영문자만 카운트하는 것이 핵심입니다.

문제 이해하기

예를 들어 입력 문자열이 다음과 같다면,

const str = 'this is a string!';

공백과 느낌표(!)를 제외한 알파벳은 총 13개이므로 출력 결과는 다음과 같아야 합니다.

13

구현 방법

먼저 주어진 문자가 알파벳인지 판별하는 헬퍼 함수 isAlpha를 만들고, 문자열을 한 글자씩 순회하면서 알파벳인 경우에만 카운트를 증가시키는 방식으로 해결할 수 있습니다.

const str = 'this is a string!';

// 해당 문자가 알파벳인지 확인하는 함수
const isAlpha = char => {
    const legend = 'abcdefghijklmnopqrstuvwxyz';
    return legend.includes(char.toLowerCase());
};

// 문자열 내 알파벳 개수를 세는 함수
const countAlphabets = (str = '') => {
    let count = 0;
    for(let i = 0; i < str.length; i++){
        if(!isAlpha(str[i])){
            continue;
        }
        count++;
    }
    return count;
};

console.log(countAlphabets(str));

코드 설명

  • isAlpha 함수: 소문자 알파벳 전체를 담은 문자열(legend)에 해당 글자가 포함되어 있는지 includes()로 확인합니다. toLowerCase()를 적용했기 때문에 대문자도 정상적으로 처리됩니다.
  • countAlphabets 함수: for 반복문으로 문자열을 한 글자씩 검사하며, 알파벳이 아닌 문자(공백, 특수문자 등)는 continue로 건너뛰고 알파벳인 경우에만 카운트를 1씩 증가시킵니다.

실행 결과

콘솔에 다음과 같이 출력됩니다.

13

이처럼 간단한 헬퍼 함수와 반복문만으로도 문자열에서 알파벳 개수를 손쉽게 계산할 수 있습니다. 참고로 정규표현식(/[a-zA-Z]/g)과 match() 메서드를 활용하면 더욱 간결하게 구현할 수도 있습니다.