# Interface StringMatcher

public interface StringMatcher
Determines if a character array portion matches.

Since:
  1.3

- ## Method Summary

  Modifier and Type
  Method
  Description
  `default StringMatcher`
  `andThen(StringMatcher stringMatcher)`
  Returns a matcher that matches this matcher followed by the given matcher.
  `default int`
  `isMatch(char[] buffer, int pos)`
  Returns the number of matching characters, zero for no match.
  `int`
  `isMatch(char[] buffer, int start, int bufferStart, int bufferEnd)`
  Returns the number of matching characters, `0` if there is no match.
  `default int`
  `isMatch(CharSequence buffer, int pos)`
  Returns the number of matching characters, zero for no match.
  `default int`
  `isMatch(CharSequence buffer, int start, int bufferStart, int bufferEnd)`
  Returns the number of matching characters, `0` if there is no match.
  `default int`
  `size()`
  Returns the size of the matching string.

- ## Method Details

  - ### andThen

    default StringMatcher andThen(StringMatcher stringMatcher)
    Returns a matcher that matches this matcher followed by the given matcher.
    Parameters:
      `stringMatcher` - the next matcher.
    Returns:
      a matcher that matches this matcher followed by the given matcher.
    Since:
      1.9

  - ### isMatch

    default int isMatch(char[] buffer, int pos)
    Returns the number of matching characters, zero for no match.

    This method is called to check for a match. The parameter `pos` represents the current position to be checked in the string `buffer` (a character array which must not be changed). The API guarantees that `pos` is a valid index for `buffer`.

    The matching code may check one character or many. It may check characters preceding `pos` as well as those after.

    It must return zero for no match, or a positive number if a match was found. The number indicates the number of characters that matched.

    Parameters:
      `buffer` - the text content to match against, do not change.
      `pos` - the starting position for the match, valid for buffer.
    Returns:
      The number of matching characters, zero for no match.
    Since:
      1.9

  - ### isMatch

    int isMatch(char[] buffer, int start, int bufferStart, int bufferEnd)
    Returns the number of matching characters, `0` if there is no match.

    This method is called to check for a match against a source `buffer`. The parameter `start` represents the start position to be checked in the `buffer` (a character array which MUST not be changed). The implementation SHOULD guarantees that `start` is a valid index in `buffer`.

    The character array may be larger than the active area to be matched. Only values in the buffer between the specified indices may be accessed, in other words: `bufferStart <= start < bufferEnd`.

    The matching code may check one character or many. It may check characters preceding `start` as well as those after, so long as no checks exceed the bounds specified.

    It must return zero for no match, or a positive number if a match was found. The number indicates the number of characters that matched.

    Parameters:
      `buffer` - the source text to search, do not change.
      `start` - the starting position for the match, valid in `buffer`.
      `bufferStart` - the first active index in the buffer, valid in `buffer`.
      `bufferEnd` - the end index (exclusive) of the active buffer, valid in `buffer`.
    Returns:
      The number of matching characters, zero if there is no match.

  - ### isMatch

    default int isMatch(CharSequence buffer, int pos)
    Returns the number of matching characters, zero for no match.

    This method is called to check for a match. The parameter `pos` represents the current position to be checked in the string `buffer` (a character array which must not be changed). The API guarantees that `pos` is a valid index for `buffer`.

    The matching code may check one character or many. It may check characters preceding `pos` as well as those after.

    It must return zero for no match, or a positive number if a match was found. The number indicates the number of characters that matched.

    Parameters:
      `buffer` - the text content to match against, do not change.
      `pos` - the starting position for the match, valid for buffer.
    Returns:
      The number of matching characters, zero for no match.
    Since:
      1.9

  - ### isMatch

    default int isMatch(CharSequence buffer, int start, int bufferStart, int bufferEnd)
    Returns the number of matching characters, `0` if there is no match.

    This method is called to check for a match against a source `buffer`. The parameter `start` represents the start position to be checked in the `buffer` (a character array which MUST not be changed). The implementation SHOULD guarantees that `start` is a valid index in `buffer`.

    The character array may be larger than the active area to be matched. Only values in the buffer between the specified indices may be accessed, in other words: `bufferStart <= start < bufferEnd`.

    The matching code may check one character or many. It may check characters preceding `start` as well as those after, so long as no checks exceed the bounds specified.

    It must return zero for no match, or a positive number if a match was found. The number indicates the number of characters that matched.

    Parameters:
      `buffer` - the source text to search, do not change.
      `start` - the starting position for the match, valid in `buffer`.
      `bufferStart` - the first active index in the buffer, valid in `buffer`.
      `bufferEnd` - the end index (exclusive) of the active buffer, valid in `buffer`.
    Returns:
      The number of matching characters, zero if there is no match.
    Since:
      1.9

  - ### size

    default int size()
    Returns the size of the matching string. Defaults to 0.
    Returns:
      the size of the matching string.
    Since:
      1.9