📄 testbreakiterator.java
字号:
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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -