MCPcopy Create free account
hub / github.com/antlr/codebuff / collapseFrom

Method collapseFrom

output/java_guava/1.4.13/CharMatcher.java:994–1012  ·  view source on GitHub ↗

Returns a string copy of the input character sequence, with each group of consecutive characters that match this matcher replaced by a single replacement character. For example: CharMatcher.anyOf("eko").collapseFrom("bookkeeper", '-') ... returns "b-p-r". The de

(CharSequence sequence, char replacement)

Source from the content-addressed store, hash-verified

992
993
994 public String collapseFrom(CharSequence sequence, char replacement) {
995 // This implementation avoids unnecessary allocation.
996 int len = sequence.length();
997 for (int i = 0; i < len; i++) {
998 char c = sequence.charAt(i);
999 if (matches(c)) {
1000 if (c == replacement
1001 && (i == len - 1 || !matches(sequence.charAt(i + 1)))) {
1002 // a no-op replacement
1003 i++;
1004 } else {
1005 StringBuilder builder = new StringBuilder(len).append(sequence, 0, i).append(replacement);
1006 return finishCollapseFrom(sequence, i + 1, len, replacement, builder, true);
1007 }
1008 }
1009 }
1010 // no replacement needed
1011 return sequence.toString();
1012 }
1013
1014 /**
1015 * Collapses groups of matching characters exactly as {@link #collapseFrom} does, except that

Callers 1

trimAndCollapseFromMethod · 0.95

Calls 5

matchesMethod · 0.95
finishCollapseFromMethod · 0.95
toStringMethod · 0.65
lengthMethod · 0.45
appendMethod · 0.45

Tested by

no test coverage detected