Package net.sf.saxon.lib

## Interface SubstringMatcher

- All Superinterfaces:
    `StringCollator`
  All Known Implementing Classes:
    `CodepointCollator`, `HTML5CaseBlindCollator`, `RuleBasedSubstringMatcher`, `UcaCollatorUsingIcu`, `UcaCollatorUsingJava`

      public interface SubstringMatcher
      extends StringCollator

  This interface is implemented by a collation that is capable of supporting the XPath functions that require matching of a substring: namely contains(), starts-with, ends-with, substring-before, and substring-after. For sorting and comparing strings, a collation needs to implement only the `StringCollator` interface; for matching of substrings, it must also implement this interface.

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `boolean` | `contains​(java.lang.String s1, java.lang.String s2)` | Test whether one string contains another, according to the rules of the XPath contains() function
    `boolean` | `endsWith​(java.lang.String s1, java.lang.String s2)` | Test whether one string ends with another, according to the rules of the XPath ends-with() function
    `boolean` | `startsWith​(java.lang.String s1, java.lang.String s2)` | Test whether one string starts with another, according to the rules of the XPath starts-with() function
    `java.lang.String` | `substringAfter​(java.lang.String s1, java.lang.String s2)` | Return the part of a string after a given substring, according to the rules of the XPath substring-after() function
    `java.lang.String` | `substringBefore​(java.lang.String s1, java.lang.String s2)` | Return the part of a string before a given substring, according to the rules of the XPath substring-before() function

    - ### Methods inherited from interface net.sf.saxon.lib.StringCollator

      `comparesEqual, compareStrings, getCollationKey, getCollationURI`

- - ### Method Detail

    - #### contains

          boolean contains​(java.lang.String s1,
                           java.lang.String s2)

      Test whether one string contains another, according to the rules of the XPath contains() function
      Parameters:
        `s1` - the containing string
        `s2` - the contained string
      Returns:
        true iff s1 contains s2

    - #### startsWith

          boolean startsWith​(java.lang.String s1,
                             java.lang.String s2)

      Test whether one string starts with another, according to the rules of the XPath starts-with() function
      Parameters:
        `s1` - the containing string
        `s2` - the contained string
      Returns:
        true iff s1 starts with s2

    - #### endsWith

          boolean endsWith​(java.lang.String s1,
                           java.lang.String s2)

      Test whether one string ends with another, according to the rules of the XPath ends-with() function
      Parameters:
        `s1` - the containing string
        `s2` - the contained string
      Returns:
        true iff s1 ends with s2

    - #### substringBefore

          java.lang.String substringBefore​(java.lang.String s1,
                                           java.lang.String s2)

      Return the part of a string before a given substring, according to the rules of the XPath substring-before() function
      Parameters:
        `s1` - the containing string
        `s2` - the contained string
      Returns:
        the part of s1 that precedes the first occurrence of s2

    - #### substringAfter

          java.lang.String substringAfter​(java.lang.String s1,
                                          java.lang.String s2)

      Return the part of a string after a given substring, according to the rules of the XPath substring-after() function
      Parameters:
        `s1` - the containing string
        `s2` - the contained string
      Returns:
        the part of s1 that follows the first occurrence of s2