Bidi

Bidi (유니코드 양방향 알고리즘)

유니코드 양방향 알고리즘(Unicode Bidirectional Algorithm)을 구현한 클래스예요. Bidi 객체는 자신을 만드는 데 사용된 텍스트의 양방향 재정렬 정보를 제공해요. 예를 들어 아랍어나 히브리어 텍스트를 올바르게 표시할 때 필요하죠.

출처: Java API Reference

본문

아랍어·히브리어 같은 언어는 숫자는 왼쪽에서 오른쪽으로, 나머지 텍스트 대부분은 오른쪽에서 왼쪽으로 정렬하는 등 본질적으로 방향이 섞여 있어요. 만들어진 Bidi 객체는 자신이 표현하는 텍스트가 전부 왼쪽→오른쪽인지, 전부 오른쪽→왼쪽인지 질의할 수 있어요. 이런 객체는 매우 가볍고 이 텍스트는 비교적 처리하기 쉬워요.

텍스트에 run이 여러 개 있다면, 인덱스로 접근해 각 run의 시작(start), 한계(limit), 레벨(level)을 얻을 수 있어요. 레벨은 방향 구간의 방향과 '중첩 수준'을 함께 나타내요. 홀수 레벨은 오른쪽→왼쪽, 짝수 레벨은 왼쪽→오른쪽이에요. 즉 레벨 0은 왼쪽→오른쪽 텍스트, 레벨 1은 오른쪽→왼쪽 텍스트, 레벨 2는 오른쪽→왼쪽 구간에 끼워진 왼쪽→오른쪽 텍스트를 나타내죠.

public final class Bidi

getBaseLevel(), getLength(), isLeftToRight(), isRightToLeft(), isMixed() 같은 메서드로 텍스트의 방향 성질을 판단할 수 있어요.

더 알아보기 (Learn more)

Java 공식 API