Java 教程是为 JDK 8 编写的。本页中描述的示例和实践未利用在后续版本中引入的改进。
BreakIterator
类对语言环境敏感,因为文本边界因语言而异。例如,换行符的语法规则对于所有语言都不相同。要确定 BreakIterator
类支持的语言环境,请调用 getAvailableLocales
方法,如下所示:
Locale[] locales = BreakIterator.getAvailableLocales();
你可以使用 BreakIterator
类分析四种边界:字符,单词,句子和潜在的换行符。实例化 BreakIterator
时,可以调用相应的工厂方法:
getCharacterInstance
getWordInstance
getSentenceInstance
getLineInstance
BreakIterator
的每个实例只能检测一种类型的边界。例如,如果要同时找到字符和字边界,则可以创建两个单独的实例。
BreakIterator
有一个虚构的光标,指向文本字符串中的当前边界。你可以使用 previous
和 next
方法在文本中移动此光标。例如,如果你使用 getWordInstance
创建了 BreakIterator
,则每次调用 next
方法时,光标都会移动到文本中的下一个词边界。光标移动方法返回指示边界位置的整数。此位置是文本字符串中将跟随边界的字符的索引。与字符串索引一样,边界从零开始。第一个边界为 0,最后一个边界是字符串的长度。下图显示了一行文本中 next
和 previous
方法检测到的单词边界:
你应该仅将 BreakIterator
类用于自然语言文本。要标记编程语言,请使用 StreamTokenizer
类。
以下部分给出了每种边界分析的示例。编码示例来自名为 BreakIteratorDemo.java
的源代码文件。