BreakIterator
BreakIterator (텍스트 경계 탐색)
텍스트에서 경계(boundary)가 생기는 위치를 찾는 메서드를 구현한 클래스예요. BreakIterator 인스턴스는 현재 위치를 유지하면서 텍스트를 훑어 경계가 생기는 문자의 인덱스를 반환해요.
본문
내부적으로 BreakIterator는 CharacterIterator를 사용해 텍스트를 훑어요. 그래서 그 프로토콜을 구현하는 어떤 객체가 가진 텍스트든 스캔할 수 있어요. setText에 전달되는 String 객체는 StringCharacterIterator가 처리해요.
이 클래스가 제공하는 팩토리 메서드로 여러 종류의 경계 분석기를 만들 수 있어요.
getWordInstance()— 단어 경계getLineInstance()— 줄바꿈 가능 경계getSentenceInstance()— 문장 경계getCharacterInstance()— 문자 경계
하나의 BreakIterator는 한 가지 단위(단어·줄·문장 등)만 다룰 수 있어요. 각 단위 경계 분석을 하려면 서로 다른 반복자를 써야 해요.
줄 경계 분석은 문자열을 줄바꿈할 때 어디에서 끊을 수 있는지를 결정해요. 구두점과 하이픈으로 이어진 단어를 올바르게 처리하지만, 실제 줄바꿈은 가용 줄 너비도 고려해야 하므로 더 상위 레벨 소프트웨어가 처리해요.
문장 경계 분석은 숫자와 약어 안의 마침표, 인용부호·괄호 같은 뒤따르는 구두점을 올바르게 해석해 선택할 수 있게 해줘요. 단어 경계 분석은 검색·치환 기능과, 더블클릭으로 단어를 선택하는 텍스트 편집 앱에서 쓰여요. 문자 경계 분석은 커서 이동처럼 사용자가 기대하는 대로 문자를 다루게 해 주며, 보조 문자(대리 쌍)나 결합 문자, 자모 클러스터 경계를 올바르게 찾아줘요.
public abstract class BreakIterator