BreakIterator

BreakIterator (텍스트 경계 탐색)

텍스트에서 경계(boundary)가 생기는 위치를 찾는 메서드를 구현한 클래스예요. BreakIterator 인스턴스는 현재 위치를 유지하면서 텍스트를 훑어 경계가 생기는 문자의 인덱스를 반환해요.

출처: Java API Reference

본문

내부적으로 BreakIteratorCharacterIterator를 사용해 텍스트를 훑어요. 그래서 그 프로토콜을 구현하는 어떤 객체가 가진 텍스트든 스캔할 수 있어요. setText에 전달되는 String 객체는 StringCharacterIterator가 처리해요.

이 클래스가 제공하는 팩토리 메서드로 여러 종류의 경계 분석기를 만들 수 있어요.

  • getWordInstance() — 단어 경계
  • getLineInstance() — 줄바꿈 가능 경계
  • getSentenceInstance() — 문장 경계
  • getCharacterInstance() — 문자 경계

하나의 BreakIterator는 한 가지 단위(단어·줄·문장 등)만 다룰 수 있어요. 각 단위 경계 분석을 하려면 서로 다른 반복자를 써야 해요.

줄 경계 분석은 문자열을 줄바꿈할 때 어디에서 끊을 수 있는지를 결정해요. 구두점과 하이픈으로 이어진 단어를 올바르게 처리하지만, 실제 줄바꿈은 가용 줄 너비도 고려해야 하므로 더 상위 레벨 소프트웨어가 처리해요.

문장 경계 분석은 숫자와 약어 안의 마침표, 인용부호·괄호 같은 뒤따르는 구두점을 올바르게 해석해 선택할 수 있게 해줘요. 단어 경계 분석은 검색·치환 기능과, 더블클릭으로 단어를 선택하는 텍스트 편집 앱에서 쓰여요. 문자 경계 분석은 커서 이동처럼 사용자가 기대하는 대로 문자를 다루게 해 주며, 보조 문자(대리 쌍)나 결합 문자, 자모 클러스터 경계를 올바르게 찾아줘요.

public abstract class BreakIterator

더 알아보기 (Learn more)

Java 공식 API