C#에서 문자열의 단어 수를 계산하는 방법
C# 프로그래밍에서 문자열에 포함된 단어의 개수를 계산해야 하는 경우가 자주 있습니다. 예를 들어 다음과 같은 문자열이 있다고 가정해 보겠습니다.
str1 = "Hello World!";
이 문자열에는 총 2개의 단어가 포함되어 있습니다. 그렇다면 어떻게 단어 수를 자동으로 계산할 수 있을까요?
단어 개수 계산의 기본 원리
핵심 아이디어는 간단합니다. 문자열을 처음부터 끝까지 한 글자씩 반복하면서 탐색하고, 공백(' '), 줄바꿈(\n), 탭(\t)과 같은 구분 문자를 발견할 때마다 카운트 변수를 1씩 증가시키는 것입니다.
이를 코드로 표현하면 다음과 같습니다.
if(str1[a]==' ' || str1[a]=='\n' || str1[a]=='\t') {
count++;
}전체 예제 코드
아래는 위 로직을 활용해 C#에서 주어진 문자열의 단어 수를 계산하는 완전한 예제입니다.
using System;
public class Demo {
public static void Main() {
string str1;
int a, count;
str1 = "Hello World!";
a = 0;
count = 1;
while (a <= str1.Length - 1) {
if(str1[a]==' ' || str1[a]=='\n' || str1[a]=='\t') {
count++;
}
a++;
}
Console.Write("Total words= {0}\n", count);
}
}코드 설명
- count = 1로 초기화: 마지막 단어 뒤에는 공백이 없기 때문에, 단어 수는 구분 문자의 개수보다 항상 하나 많습니다. 따라서 초기값을 1로 설정합니다.
- while 반복문: 인덱스 a가 문자열 길이 - 1에 도달할 때까지 한 글자씩 검사합니다.
- 조건문: 현재 문자가 공백, 줄바꿈, 또는 탭 중 하나라도 해당되면 count를 증가시킵니다.
실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
Total words= 2
"Hello World!"라는 문자열에는 공백이 하나 있으므로, 초기값 1에 공백 1개가 더해져 총 단어 수 2개가 정확히 계산됩니다. 이 방식은 여러 줄의 텍스트나 탭이 포함된 문자열에도 동일하게 적용할 수 있습니다.