文档

Java™教程
隐藏目录
关于BreakIterator类
路径:国际化
课程:处理文本
章节:检测文本边界

关于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的源代码文件。


上一页:检测文本边界
下一页:字符边界