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

Method collapseFrom

corpus/java/training/guava/base/CharMatcher.java:902–919  ·  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

900 * @return the new string
901 */
902 public String collapseFrom(CharSequence sequence, char replacement) {
903 // This implementation avoids unnecessary allocation.
904 int len = sequence.length();
905 for (int i = 0; i < len; i++) {
906 char c = sequence.charAt(i);
907 if (matches(c)) {
908 if (c == replacement && (i == len - 1 || !matches(sequence.charAt(i + 1)))) {
909 // a no-op replacement
910 i++;
911 } else {
912 StringBuilder builder = new StringBuilder(len).append(sequence, 0, i).append(replacement);
913 return finishCollapseFrom(sequence, i + 1, len, replacement, builder, true);
914 }
915 }
916 }
917 // no replacement needed
918 return sequence.toString();
919 }
920
921 /**
922 * 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