3

在下面的示例中,BreakIterator似乎在一个相当简单的示例上失败了。

我使用BreakIterator不正确,还是这只是一个错误?

示例类:

import java.text.BreakIterator;
import java.util.Locale;
public class BreakIteratorTest {
    public static void main(String[] args) throws Exception {
        String text = "Due to a problem (e.g., software bug), the server is down.";
        BreakIterator bi = BreakIterator.getSentenceInstance(Locale.US);
        bi.setText(text);
        int r = bi.preceding(30);
        System.out.println("bi.preceding(30) returned " + r);
        String sentence = r == BreakIterator.DONE ? text : text.substring(0, r);
        System.out.println("first sentence: \"" + sentence + "\"");
    }
}

输出:

$ javac BreakIteratorTest.java 
$ java BreakIteratorTest
bi.preceding(30) returned 21
first sentence: "Due to a problem (e.g"

似乎bi.preceding(30)应该返回BreakIterator.DONE

JDK 版本 1.8.0。

4

0 回答 0