Dear ICU team & users,
ICU4J 50 is going to remove the existing class
Its functionality was moved into the base RuleBasedBreakIterator, and
improved. In particular, Java RBBI now handles multiple built-in
dictionaries, selecting them by character script, as in C++. As a result,
creating a BreakIterator for a particular language or dictionary is
unnecessary and obsolete.
The dictionary data structure was changed, so ICU 50 would not be able to
handle an old InputStream dictionaryStream. (If we wanted to formally keep
a class DictionaryBasedBreakIterator it would be an empty class, and its
one public constructor would throw an UnsupportedOperationException.)
The DBBI class was not usable by itself: A dictionary alone is not
sufficient for dictionary-based breaking. For each dictionary there must be
specific code with the specific matching algorithm (longest match vs.
word-frequency-based word sequence probability) and with a script-specific
test for whether a dictionary word was found at a syllable boundary (or
whatever is the appropriate criterium).
RBBI and its DBBI subclasses had an "intimate connection" and were not
In C++, DBBI was already not public API and has been removed several years
If any users have subclasses of class DictionaryBasedBreakIterator, they
will need to be changed to subclass RuleBasedBreakIterator directly.
Google Internationalization Engineering