文档

Java™ 教程-Java Tutorials 中文版
关于 BreakIterator 类
Trail: Internationalization
Lesson: Working with Text
Section: Detecting Text Boundaries

关于 BreakIterator 类

BreakIterator 类对语言环境敏感,因为文本边界因语言而异。例如,换行符的语法规则对于所有语言都不相同。要确定 BreakIterator 类支持的语言环境,请调用 getAvailableLocales 方法,如下所示:

Locale[] locales = BreakIterator.getAvailableLocales();

你可以使用 BreakIterator 类分析四种边界:字符,单词,句子和潜在的换行符。实例化 BreakIterator 时,可以调用相应的工厂方法:

BreakIterator 的每个实例只能检测一种类型的边界。例如,如果要同时找到字符和字边界,则可以创建两个单独的实例。

BreakIterator 有一个虚构的光标,指向文本字符串中的当前边界。你可以使用 previousnext 方法在文本中移动此光标。例如,如果你使用 getWordInstance 创建了 BreakIterator,则每次调用 next 方法时,光标都会移动到文本中的下一个词边界。光标移动方法返回指示边界位置的整数。此位置是文本字符串中将跟随边界的字符的索引。与字符串索引一样,边界从零开始。第一个边界为 0,最后一个边界是字符串的长度。下图显示了一行文本中 nextprevious 方法检测到的单词边界:

文本“Hope is the thing with feathers”,标明了边界。
这个图已缩小以适合页面。
单击图像以其自然大小查看。

你应该仅将 BreakIterator 类用于自然语言文本。要标记编程语言,请使用 StreamTokenizer 类。

以下部分给出了每种边界分析的示例。编码示例来自名为 BreakIteratorDemo.java 的源代码文件。


Previous page: Detecting Text Boundaries
Next page: Character Boundaries