Computer >> 컴퓨터 >  >> 프로그래밍 >> C#

C#으로 문자열의 단어 개수를 세는 프로그램 만들기

C#에서 문자열에 포함된 단어의 개수를 계산하는 방법을 알아보겠습니다. 핵심 아이디어는 문자열을 처음부터 끝까지 한 글자씩 검사하면서 공백(space), 탭(tab), 줄바꿈(newline) 문자가 나타날 때마다 단어 수를 하나씩 늘리는 것입니다.

1단계: 문자열 선언하기

가장 먼저 단어 개수를 셀 문자열을 선언합니다.

string str = "Hello World!";

2단계: 문자열을 순회하며 구분자 찾기

이제 while 루프를 사용해 문자열 전체를 순회하면서 공백(' '), 줄바꿈('\n'), 탭('\t') 문자를 찾습니다. 이러한 구분자가 발견될 때마다 단어 카운트 변수를 증가시킵니다.

while (a <= str.Length - 1) {
    if(str[a]==' ' || str[a]=='\n' || str[a]=='\t') {
        myWord++;
    }
    a++;
}

전체 예제 코드

지금까지 설명한 내용을 모두 합친 완성된 C# 코드입니다. 초기 단어 카운트를 1로 설정하는 점에 주목하세요. 마지막 단어 뒤에는 구분자가 없기 때문입니다.

using System;
public class Demo {
    public static void Main() {
        int a = 0 , myWord = 1;
        string str = "Hello World!";
        while (a <= str.Length - 1) {
            if(str[a]==' ' || str[a]=='\n' || str[a]=='\t') {
                myWord++;
            }
            a++;
        }
        Console.Write("Number of words in the string = {0}\n", myWord);
    }
}

실행 결과

위 프로그램을 실행하면 다음과 같은 결과가 출력됩니다.

Number of words in the string = 2

코드 설명

  • myWord = 1: 첫 번째 단어는 이미 시작되어 있으므로 카운트를 1로 초기화합니다.
  • str.Length - 1: 인덱스가 0부터 시작하므로 루프 조건을 문자열 길이에서 1을 뺀 값까지 설정합니다.
  • 구분자 검사: 공백, 탭, 줄바꿈 문자 중 하나라도 발견되면 새로운 단어가 시작된 것으로 판단하여 카운트를 증가시킵니다.

이 방식은 간단하지만 연속된 공백이 있으면 정확하지 않을 수 있습니다. 더 견고한 처리가 필요하다면 Split() 메서드와 함께 StringSplitOptions.RemoveEmptyEntries 옵션을 사용하는 방법도 고려해 볼 수 있습니다.