[java] Jansi를 활용하여 자바에서 터미널에서 텍스트 정렬하기

텍스트를 터미널에서 정렬하는 것은 자바 개발자에게 유용한 기능입니다. 이를 위해 Jansi 라이브러리를 사용하여 ANSI 이스케이프 시퀀스를 통해 텍스트를 포맷팅하고 터미널 화면에 정렬된 텍스트를 출력할 수 있습니다.

Jansi 라이브러리 추가하기

먼저 프로젝트에 Jansi 라이브러리를 추가해야 합니다. Maven을 사용하는 경우 pom.xml 파일에 다음 의존성을 추가하십시오.

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

Gradle을 사용하는 경우 build.gradle 파일에 다음 의존성을 추가하십시오.

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

의존성을 추가한 후 프로젝트를 빌드하십시오.

텍스트 정렬하기

다음은 Jansi를 사용하여 터미널에서 텍스트를 정렬하는 간단한 예제입니다.

import org.fusesource.jansi.AnsiConsole;

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

        String text = "Hello, Jansi!";
        int terminalWidth = AnsiConsole.out().getTerminal().getWidth();

        String alignedText = alignCenter(text, terminalWidth);
        System.out.println(alignedText);

        AnsiConsole.systemUninstall();
    }

    public static String alignCenter(String text, int width) {
        int padding = (width - text.length()) / 2;
        StringBuilder paddedText = new StringBuilder();
        for (int i = 0; i < padding; i++) {
            paddedText.append(" ");
        }
        paddedText.append(text);
        return paddedText.toString();
    }
}

위의 코드는 터미널의 너비를 얻어오고, 주어진 텍스트의 길이와 터미널의 너비를 비교하여 텍스트를 가운데 정렬하는 alignCenter 메소드를 포함하고 있습니다.

실행 결과

위의 예제를 실행하면 터미널 화면에서 "Hello, Jansi!"를 가운데 정렬한 결과를 볼 수 있습니다.

             Hello, Jansi!

이와 같이 Jansi를 사용하여 자바에서 터미널에서 텍스트를 정렬하는 것은 간단하고 유용한 기능입니다. Jansi를 사용하는 것으로 텍스트 포맷팅에 대한 제한을 더욱 풀 수 있습니다.

참고 자료