这些Java教程是为JDK 8编写的。本页面中描述的示例和实践不利用后续版本引入的改进,并且可能使用不再可用的技术。
请参阅Java语言更改了解Java SE 9及其后续版本中的更新语言特性的摘要。
请参阅JDK发行说明了解有关所有JDK版本的新功能、增强功能以及已删除或弃用选项的信息。
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
的源代码文件。