testbreakiterator.java
来自「本书是一本为Java学习者在基础内容学习结束后进行课程设计时提供参考的指导书」· Java 代码 · 共 80 行
JAVA
80 行
package apibook.c2.s2;import java.text.*;import java.util.*;//测试BreakIterator类public class TestBreakIterator { public TestBreakIterator() { }//按顺序输出每个元素 public static void printEachForward(BreakIterator boundary, String source) { int start = boundary.first(); for (int end = boundary.next(); end != BreakIterator.DONE; start = end, end = boundary.next()) { System.out.println(source.substring(start,end)); } } //按反序输出每个元素 public static void printEachBackward(BreakIterator boundary, String source) { int end = boundary.last(); for (int start = boundary.previous(); start != BreakIterator.DONE; end = start, start = boundary.previous()) { System.out.println(source.substring(start,end)); } } //输出第一个元素 public static void printFirst(BreakIterator boundary, String source) { int start = boundary.first(); int end = boundary.next(); System.out.println("Start:" + source.substring(start,end)); } //输出最后一个元素 public static void printLast(BreakIterator boundary, String source) { int end = boundary.last(); int start = boundary.previous(); System.out.println("Last:" + source.substring(start,end)); } //输出特定位置的元素 public static void printAt(BreakIterator boundary, int pos, String source) { int end = boundary.following(pos); int start = boundary.previous(); System.out.println(source.substring(start,end)); } //输出下一个元素 public static int nextWordStartAfter(int pos, String text) { BreakIterator wb = BreakIterator.getWordInstance(); wb.setText(text); int last = wb.following(pos); int current = wb.next(); while (current != BreakIterator.DONE) { for (int p = last; p < current; p++) { if (Character.isLetter(text.charAt(p))) return last; } last = current; current = wb.next(); } return BreakIterator.DONE; } public static void main(String[] args) { String stringToExamine = "test?yes,test BreakIterator!oh!"; //按顺序输出每个单词 BreakIterator boundary = BreakIterator.getWordInstance(); boundary.setText(stringToExamine); printEachForward(boundary, stringToExamine); //反序输出每个句子 boundary = BreakIterator.getSentenceInstance(Locale.US); boundary.setText(stringToExamine); printEachBackward(boundary, stringToExamine); //输出第一个 printFirst(boundary, stringToExamine); //输出最后一个 printLast(boundary, stringToExamine); }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?