private static String pretty(String source) { StringBuilder result = new StringBuilder(); for (int i = 0; i < source.length(); ++i) { char c = source.charAt(i); String color = lead.contains(c) ? "FFcccc" : vowel.contains(c) ? "ccFFcc" : trail.contains(c) ? "ccccFF" : "FFFFFF"; result.append("<span style='background-color: #" + color + "'>" + c + "</span>"); } return result.toString(); }
@Override public int next() { int current = current(); int next = rules.next(); if (next == BreakIterator.DONE) return next; else next += workingOffset; char c = working.current(); int following = rules.next(); // lookahead if (following != BreakIterator.DONE) { following += workingOffset; if (rules.getRuleStatus() == 0 && laoSet.contains(c) && verifyPushBack(current, next)) { workingOffset = next - 1; working.setText( text.getText(), text.getStart() + workingOffset, text.getLength() - workingOffset); return next - 1; } rules.previous(); // undo the lookahead } return next; }