[java] Jansi를 활용하여 자바에서 터미널에서 텍스트의 단어 수 세기

이 글에서는 Jansi 라이브러리를 사용하여 자바에서 터미널 환경에서 텍스트의 단어 수를 세는 방법을 알아보겠습니다.

Jansi란?

Jansi는 자바에서 ANSI (American National Standards Institute) 이스케이프 시퀀스를 처리하는 데 사용되는 라이브러리입니다. ANSI 이스케이프 시퀀스는 커맨드 라인 환경에서 텍스트 스타일링 및 서식을 지정하기 위해 사용됩니다.

Jansi 사용 방법

  1. 먼저, 프로젝트의 의존성에 Jansi 라이브러리를 추가해야 합니다. Maven 프로젝트의 경우 pom.xml 파일에 아래의 의존성을 추가합니다.
<dependency>
    <groupId>org.fusesource.jansi</groupId>
    <artifactId>jansi</artifactId>
    <version>1.18</version>
</dependency>
  1. 다음으로, 터미널에서 텍스트를 읽어와 단어 수를 세는 자바 코드를 작성해보겠습니다.
import org.fusesource.jansi.AnsiConsole;

import java.util.Scanner;

public class WordCount {

    public static void main(String[] args) {
        // Jansi 초기화
        AnsiConsole.systemInstall();

        // 사용자로부터 텍스트 입력 받기
        System.out.println("텍스트를 입력하세요:");
        Scanner scanner = new Scanner(System.in);
        String inputText = scanner.nextLine();

        // 단어 수 세기
        int wordCount = countWords(inputText);

        // 결과 출력
        System.out.println("입력한 텍스트에는 " + wordCount + "개의 단어가 있습니다.");

        // Jansi 복원
        AnsiConsole.systemUninstall();
    }

    public static int countWords(String text) {
        String[] words = text.split("\\s+");
        return words.length;
    }
}

위의 코드에서는 JansiConsole 클래스를 사용하여 ANSI 이스케이프 시퀀스를 처리하고, Scanner를 사용하여 터미널에서 텍스트를 입력받습니다. 입력받은 텍스트는 countWords 메소드를 사용하여 단어 수를 세고, 결과를 출력합니다.

실행 결과

다음은 위의 코드를 실행한 후, 터미널에서 “Hello world, 안녕하세요”라는 텍스트를 입력한 결과입니다.

텍스트를 입력하세요:
Hello world, 안녕하세요
입력한 텍스트에는 3개의 단어가 있습니다.

결론

Jansi를 사용하면 자바에서 터미널에서 텍스트의 단어 수를 쉽게 세는 작업을 할 수 있습니다. Jansi의 다양한 기능을 활용하여 터미널에서의 텍스트 스타일링 등 다양한 작업을 수행할 수도 있습니다.

더 자세한 내용과 Jansi의 사용법은 Jansi GitHub 페이지를 참고하시면 됩니다.