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

Method collapseFrom

output/java_guava/1.4.19/CharMatcher.java:993–1010  ·  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

991
992
993 public String collapseFrom(CharSequence sequence, char replacement) {
994 // This implementation avoids unnecessary allocation.
995 int len = sequence.length();
996 for (int i = 0; i < len; i++) {
997 char c = sequence.charAt(i);
998 if (matches(c)) {
999 if (c == replacement && (i == len - 1 || !matches(sequence.charAt(i + 1)))) {
1000 // a no-op replacement
1001 i++;
1002 } else {
1003 StringBuilder builder = new StringBuilder(len).append(sequence, 0, i).append(replacement);
1004 return finishCollapseFrom(sequence, i + 1, len, replacement, builder, true);
1005 }
1006 }
1007 }
1008 // no replacement needed
1009 return sequence.toString();
1010 }
1011
1012 /**
1013 * 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