在下面的示例中,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。