Java에서 문자열의 단어 수 가져 오기

Rupam Yadav 2023년10월12일
  1. StringTokenizer를 사용하여 Java에서 문자열의 단어 수 계산
  2. split()및 정규식을 사용하여 Java에서 문자열의 단어 수 계산
  3. Java의 문자열에서 단어가 반복되는 횟수 가져 오기
Java에서 문자열의 단어 수 가져 오기

이 기사에서는 Java에서 문자열의 단어 수를 계산하는 방법과이를 달성하는 다양한 방법에 대해 설명합니다.

StringTokenizer를 사용하여 Java에서 문자열의 단어 수 계산

Java의StringTokenizer클래스를 사용하면 문자열을 여러 토큰으로 나눌 수 있습니다. 이 클래스의 메서드는 인용 된 문자열, 식별자 및 숫자를 구별하지 않으며 주석을 인식하거나 건너 뛰지 않습니다. 토큰을 구분하는 문자 (구분자)는 생성시 또는 토큰별로 지정할 수 있습니다.

StringTokenizer클래스는 공백과 탭을 자동으로 계산하지 않으므로 자체적으로 처리됩니다.

import java.util.StringTokenizer;
public class WordCount {
  public static void main(String args[]) {
    String mydelim = " - ";
    String myString = "The  sky - - is blue!";
    StringTokenizer stringTokenizer1 = new StringTokenizer(myString);
    StringTokenizer stringTokenizer2 = new StringTokenizer(myString, mydelim);

    int tokensCount1 = stringTokenizer1.countTokens();
    int tokensCount2 = stringTokenizer2.countTokens();

    System.out.println("Word count without delimiter: " + String.valueOf(tokensCount1));
    System.out.println("Word count: " + String.valueOf(tokensCount2));
  }
}

출력:

Word count without delimiter: 6
Word count: 4

여기에서 생성자에 문자열을 전달하여stringTokenizer1을 만들었습니다. 기본 구분 기호를 사용하는 반면stringTokenizer2의 경우 개별 토큰에 대한 사용자 지정 구분 기호가 전달됩니다. 첫 번째 방법은 하이픈을 세는 반면 두 번째 방법은 그렇지 않습니다.

split()및 정규식을 사용하여 Java에서 문자열의 단어 수 계산

Java의split(String regex)메소드는 정규식을 취하고 정규식과 일치하는 주어진 문자열을 끊고 문자열 배열을 리턴합니다.

여기에서 사용하는 정규 표현식은\\s+로 공백을 문자열에서 분리하거나 즉, 주어진 문자열을 공백 주위로 분할합니다. 문자열의 단어 수는length를 호출하여 얻을 수있는 문자열 배열words의 길이와 같습니다. 출력에는myStr의 단어 수가 표시됩니다.

public class WordCount {
  public static void main(String args[]) {
    String myStr = "the butcher's wife, she was from Montreal";
    String[] words = myStr.split("\\s+");
    System.out.println("Word Count is: " + words.length);
  }
}

출력:

Word Count is: 7

Java의 문자열에서 단어가 반복되는 횟수 가져 오기

주어진 문자열에서 단어가 반복되는 횟수를 계산할 수 있습니다. 여기서randomTextblue단어가 반복되는 횟수를 찾아야하는 문자열입니다. 이를 위해int유형의times변수를 취하여 0으로 초기화합니다. 0에서randomText길이까지for루프를 실행합니다.

startsWith()메소드는 문자열이 주어진 문자열의 문자로 시작하는지 비교합니다. i = 0의 경우randomText.substring(0)메소드는 인덱스 0에서 하위 문자열을 가져 와서startsWith("blue")인지 확인하고 일치하면times를 1 씩 증가시킵니다. 그렇지 않으면 증가하지 않습니다.

마찬가지로, 나머지 길이를 확인하고 주어진 문자열에서 단어가 반복 된 횟수를 출력으로 인쇄합니다.

public class WordCount {
  public static void main(String args[]) {
    String randomText = "The sky is blue it meets the sea which is also blue";

    String text = "blue";
    int times = 0;
    for (int i = 0; i < randomText.length(); i++) {
      if (randomText.substring(i).startsWith(text)) {
        times++;
      }
    }
    System.out.println(randomText + " contains " + text + " " + times + " times");
  }
}

출력:

The sky is blue it meets the sea which is also blue contains blue 2 times
작가: Rupam Yadav
Rupam Yadav avatar Rupam Yadav avatar

Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.

LinkedIn

관련 문장 - Java String