/** * Returns a string containing all matching characters of a character * sequence, in order. For example: <pre> {@code * * CharMatcher.is('a').retainFrom("bazaar")}</pre> * * ... returns {@code "aaa"}. */ public String retainFrom(CharSequence sequence) { return negate().removeFrom(sequence); }
/** * Returns a string containing all matching characters of a character * sequence, in order. For example: <pre> {@code * * CharMatcher.is('a').retainFrom("bazaar")}</pre> * * ... returns {@code "aaa"}. */ public String retainFrom(CharSequence sequence) { return negate().removeFrom(sequence); }
/** * Returns a {@code char} matcher that matches any character not present in * the given character sequence. */ public static CharMatcher noneOf(CharSequence sequence) { return anyOf(sequence).negate(); }
/** * Returns a string containing all matching characters of a character * sequence, in order. For example: <pre> {@code * * CharMatcher.is('a').retainFrom("bazaar")}</pre> * * ... returns {@code "aaa"}. */ public String retainFrom(CharSequence sequence) { return negate().removeFrom(sequence); }
/** * Returns a {@code char} matcher that matches any character not present in * the given character sequence. */ public static CharMatcher noneOf(CharSequence sequence) { return anyOf(sequence).negate(); }
/** * Returns a {@code char} matcher that matches any character not present in * the given character sequence. */ public static CharMatcher noneOf(CharSequence sequence) { return anyOf(sequence).negate(); }
/** * Collapses groups of matching characters exactly as {@link #collapseFrom} * does, except that groups of matching characters at the start or end of the * sequence are removed without replacement. */ public String trimAndCollapseFrom(CharSequence sequence, char replacement) { int first = negate().indexIn(sequence); if (first == -1) { return ""; // everything matches. nothing's left. } StringBuilder builder = new StringBuilder(sequence.length()); boolean inMatchingGroup = false; for (int i = first; i < sequence.length(); i++) { char c = sequence.charAt(i); if (apply(c)) { inMatchingGroup = true; } else { if (inMatchingGroup) { builder.append(replacement); inMatchingGroup = false; } builder.append(c); } } return builder.toString(); }
/** * Collapses groups of matching characters exactly as {@link #collapseFrom} * does, except that groups of matching characters at the start or end of the * sequence are removed without replacement. */ public String trimAndCollapseFrom(CharSequence sequence, char replacement) { int first = negate().indexIn(sequence); if (first == -1) { return ""; // everything matches. nothing's left. } StringBuilder builder = new StringBuilder(sequence.length()); boolean inMatchingGroup = false; for (int i = first; i < sequence.length(); i++) { char c = sequence.charAt(i); if (apply(c)) { inMatchingGroup = true; } else { if (inMatchingGroup) { builder.append(replacement); inMatchingGroup = false; } builder.append(c); } } return builder.toString(); }
/** * Collapses groups of matching characters exactly as {@link #collapseFrom} * does, except that groups of matching characters at the start or end of the * sequence are removed without replacement. */ public String trimAndCollapseFrom(CharSequence sequence, char replacement) { int first = negate().indexIn(sequence); if (first == -1) { return ""; // everything matches. nothing's left. } StringBuilder builder = new StringBuilder(sequence.length()); boolean inMatchingGroup = false; for (int i = first; i < sequence.length(); i++) { char c = sequence.charAt(i); if (apply(c)) { inMatchingGroup = true; } else { if (inMatchingGroup) { builder.append(replacement); inMatchingGroup = false; } builder.append(c); } } return builder.toString(); }