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

JavaScript로 문자열 내 구두점 개수 세기

영어에서 일반적으로 구두점(punctuation)으로 간주되는 문자들은 다음과 같습니다.

'!', ",", "'", ";", "\"", ".", "-", "?"

이번 글에서는 문자열을 입력받아 해당 문자열 안에 위 구두점들이 몇 번 등장하는지 계산한 뒤, 그 개수를 반환하는 JavaScript 함수를 작성해 보겠습니다.

구현 아이디어

핵심 로직은 간단합니다. 문자열의 각 문자를 하나씩 순회하면서, 해당 문자가 미리 정의해 둔 구두점 목록에 포함되어 있는지 확인하고, 포함되어 있다면 카운트를 1씩 증가시키면 됩니다.

예제 코드

실제 동작하는 함수를 작성해 보겠습니다.

const str = "This, is a-sentence;.Is this a sentence?";
const countPunctuation = str => {
    const punct = "!,\;.-?";
    let count = 0;
    for(let i = 0; i < str.length; i++){
        if(!punct.includes(str[i])){
            continue;
        };
        count++;
    };
    return count;
};
console.log(countPunctuation(str));

코드 설명

위 코드의 동작 과정을 단계별로 살펴보겠습니다.

먼저 punct 변수에 세고자 하는 구두점들을 하나의 문자열로 묶어 저장합니다. 이후 for 반복문으로 입력 문자열의 처음부터 끝까지 한 글자씩 확인하며, includes() 메서드를 사용해 현재 문자가 구두점 목록에 속하는지 검사합니다. 구두점이 아니라면 continue로 다음 문자로 넘어가고, 구두점이라면 count 값을 증가시킵니다. 모든 문자를 확인한 후 최종 카운트를 반환합니다.

출력 결과

콘솔에 출력되는 결과는 다음과 같습니다.

5

예제 문자열에는 쉼표(,), 하이픈(-), 세미콜론(;), 마침표(.), 물음표(?)가 각각 하나씩 있으므로 총 5개의 구두점이 올바르게 계산된 것을 확인할 수 있습니다.