AttributedString

AttributedString (속성 있는 텍스트 저장)

텍스트와 관련 속성 정보를 함께 담고 있는 클래스예요. 텍스트를 읽는 쪽이 AttributedCharacterIterator 인터페이스를 통해 속성 있는 텍스트에 접근하고 싶을 때, 실제 데이터 저장소로 쓰일 수 있어요.

출처: Java API Reference

본문

속성(attribute)은 키로 식별되는 키/값 쌍이에요. 같은 문자에 붙은 두 속성은 같은 키를 가질 수 없어요. 속성의 값은 불변이거나 클라이언트나 저장소가 변경하지 않아야 하고, 항상 참조로 전달되며 복제되지 않아요.

AttributedString에 텍스트와 함께 속성 구간을 지정해 넣으면, getIterator()AttributedCharacterIterator를 얻어 텍스트와 속성을 함께 순회할 수 있어요.

public final class AttributedString

예를 들어 일부 구간에만 TextAttribute 값을 부여하고 싶다면 다음과 같이 만들 수 있어요.

AttributedString as = new AttributedString("Hello world");
as.addAttribute(TextAttribute.FONT, font, 0, 5);
AttributedCharacterIterator it = as.getIterator();

만약 값이 같더라도 의미적으로 나눠져야 하는 속성이라면 Annotation 객체로 감싸 저장할 수 있어요. 이렇게 하면 인접 구간이 임의로 병합되지 않아요.

더 알아보기 (Learn more)

Java 공식 API