[java] Jansi를 이용하여 자바 애플리케이션에서 터미널에서 문자열 검색하기

이번에는 Jansi 라이브러리를 사용하여 자바 애플리케이션에서 터미널에서 문자열을 검색하는 방법을 알아보겠습니다.

Jansi는 자바 애플리케이션에서 ANSI Escape Sequence를 이용하여 터미널에 다양한 텍스트 스타일링을 할 수 있도록 도와주는 라이브러리입니다.

1. 의존성 추가

먼저, 프로젝트의 의존성에 Jansi를 추가해야 합니다. Maven을 사용하는 경우, pom.xml 파일에 다음과 같이 의존성을 추가합니다:

<dependency>
    <groupId>org.fusesource.jansi</groupId>
    <artifactId>jansi</artifactId>
    <version>1.18</version>
</dependency>

Gradle을 사용하는 경우, build.gradle 파일에 다음과 같이 의존성을 추가합니다:

dependencies {
    implementation 'org.fusesource.jansi:jansi:1.18'
}

의존성을 추가한 후, IDE에서 프로젝트를 동기화합니다.

2. 문자열 검색하기

이제 Jansi를 사용하여 터미널에서 문자열을 검색하는 코드를 작성해보겠습니다. 다음은 예제 코드입니다:

import org.fusesource.jansi.AnsiConsole;
import static org.fusesource.jansi.Ansi.*;

public class TerminalSearch {

    public static void main(String[] args) {
        AnsiConsole.systemInstall();

        String searchTerm = "hello world";
        String text = "Hello world! This is a test text.";

        if (text.contains(searchTerm)) {
            System.out.println(ansi().fg(Color.GREEN).a("Found").reset());
        } else {
            System.out.println(ansi().fg(Color.RED).a("Not found").reset());
        }

        AnsiConsole.systemUninstall();
    }
}

이 예제에서는 AnsiConsole.systemInstall()AnsiConsole.systemUninstall()를 사용하여 터미널에서 ANSI Escape Sequence를 처리할 수 있도록 설정하고 해제합니다. ansi() 메서드를 사용하여 ANSI Escape Sequence를 생성하고, fg(Color)를 사용하여 텍스트 색상을 설정합니다.

위의 코드에서는 searchTerm 변수에 검색할 문자열을, text 변수에 검색 대상 텍스트를 저장하고 있습니다. textsearchTerm이 포함되어 있는지 contains() 메서드를 사용하여 확인한 후, 결과에 따라 “Found” 또는 “Not found”를 출력합니다.

3. 실행 결과

위의 코드를 실행하면, 터미널에서 “Found” 또는 “Not found”라는 결과를 볼 수 있습니다. 만약 text에 “hello world”라는 문자열이 포함되어 있다면, “Found”가 출력될 것입니다.

결론

Jansi를 사용하면 자바 애플리케이션에서 터미널에서 문자열을 검색하는 기능을 쉽게 구현할 수 있습니다. 텍스트 스타일링과 함께 터미널에서 텍스트 검색 기능을 제공하고 싶은 경우, Jansi를 사용하여 간편하게 구현할 수 있습니다.

프로젝트의 의존성에 Jansi를 추가하고, ANSI Escape Sequence를 활용하여 터미널에서 문자열을 검색하는 기능을 구현해보세요.