SeouliteLab

[Java/자바] 문자열의 단어 개수 가져오는 방법 본문

프로그래밍

[Java/자바] 문자열의 단어 개수 가져오는 방법

Seoulite Lab 2024. 3. 7. 08:56

문자열에서 단어의 개수를 가져오는 작업은 자바 프로그래밍에서 매우 흔한 작업 중 하나입니다. 이를 위해 다양한 방법이 존재합니다. 아래에서는 여러 예제를 통해 각각의 방법을 살펴보겠습니다.

예제 1: StringTokenizer 사용

import java.util.StringTokenizer;

public class WordCountExample {
    public static void main(String[] args) {
        String sentence = "Hello World, Java Programming is fun!";
        StringTokenizer tokenizer = new StringTokenizer(sentence);
        int wordCount = tokenizer.countTokens();
        System.out.println("단어 개수: " + wordCount);
    }
}

위 예제는 StringTokenizer를 사용하여 문자열에서 단어 개수를 가져오는 방법을 보여줍니다. StringTokenizer는 문자열을 특정 구분자를 기준으로 토큰으로 나누는 데 사용됩니다.

예제 2: split 메서드 사용

public class WordCountExample {
    public static void main(String[] args) {
        String sentence = "Hello World, Java Programming is fun!";
        String[] words = sentence.split("\\s+");
        int wordCount = words.length;
        System.out.println("단어 개수: " + wordCount);
    }
}

split 메서드를 사용하여 문자열을 공백을 기준으로 나누고, 배열의 길이를 통해 단어 개수를 계산합니다.

예제 3: 정규식 사용

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class WordCountExample {
    public static void main(String[] args) {
        String sentence = "Hello World, Java Programming is fun!";
        Pattern pattern = Pattern.compile("\\b\\w+\\b");
        Matcher matcher = pattern.matcher(sentence);
        int wordCount = 0;
        while (matcher.find()) {
            wordCount++;
        }
        System.out.println("단어 개수: " + wordCount);
    }
}

정규식을 사용하여 단어를 찾아 단어의 개수를 계산하는 방법입니다. "\\b\\w+\\b" 정규식은 단어를 찾는데 사용됩니다.

예제 4: Stream API 사용

import java.util.Arrays;

public class WordCountExample {
    public static void main(String[] args) {
        String sentence = "Hello World, Java Programming is fun!";
        long wordCount = Arrays.stream(sentence.split("\\s+"))
                               .count();
        System.out.println("단어 개수: " + wordCount);
    }
}

Java 8부터 제공되는 Stream API를 사용하여 문자열을 공백을 기준으로 나눈 후 스트림의 개수를 세는 방법입니다.

예제 5: java.util.Scanner 사용

import java.util.Scanner;

public class WordCountExample {
    public static void main(String[] args) {
        String sentence = "Hello World, Java Programming is fun!";
        Scanner scanner = new Scanner(sentence);
        int wordCount = 0;
        while (scanner.hasNext()) {
            scanner.next();
            wordCount++;
        }
        System.out.println("단어 개수: " + wordCount);
    }
}

Scanner 클래스를 사용하여 문자열에서 단어를 읽어오고, 단어의 개수를 세는 방법입니다.

예제 6: Apache Commons Lang 라이브러리 사용

Apache Commons Lang 라이브러리의 WordUtils 클래스를 사용하여 단어의 개수를 가져오는 방법입니다. 이를 위해 프로젝트에 commons-lang 라이브러리를 추가해야 합니다.

import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.text.WordUtils;

public class WordCountExample {
    public static void main(String[] args) {
        String sentence = "Hello World, Java Programming is fun!";
        int wordCount = WordUtils.countWords(sentence);
        System.out.println("단어 개수: " + wordCount);
    }
}