StringHelper (Lucene 10.5.0 core API)
Description: declaration: package: org.apache.lucene.util, class: StringHelper

Package org.apache.lucene.util

# Class StringHelper

java.lang.Object
org.apache.lucene.util.StringHelper

public abstract class StringHelper extends Object
Methods for manipulating strings.

NOTE: This API is for internal purposes only and might change in incompatible ways in the next release.

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final int`
  `GOOD_FAST_HASH_SEED`
  Pass this as the seed to `murmurhash3_x86_32(byte[], int, int, int)`.
  `static final int`
  `ID_LENGTH`
  length in bytes of an ID

- ## Method Summary

  Modifier and Type
  Method
  Description
  `static int`
  `bytesDifference(BytesRef priorTerm, BytesRef currentTerm)`
  Compares two `BytesRef`, element by element, and returns the number of elements common to both arrays (from the start of each).
  `static boolean`
  `endsWith(BytesRef ref, BytesRef suffix)`
  Returns `true` iff the ref ends with the given suffix.
  `static String`
  `idToString(byte[] id)`
  Helper method to render an ID as a string, for debugging
  `static BytesRef`
  `intsRefToBytesRef(IntsRef ints)`
  Just converts each int in the incoming `IntsRef` to each byte in the returned `BytesRef`, throwing `IllegalArgumentException` if any int value is out of bounds for a byte.
  `static long[]`
  `murmurhash3_x64_128(byte[] data, int offset, int length, int seed)`
  Generates 128-bit hash from the byte array with the given offset, length and seed.
  `static long[]`
  `murmurhash3_x64_128(BytesRef data)`
  Generates 128-bit hash from the byte array with the given offset, length and seed.
  `static int`
  `murmurhash3_x86_32(byte[] data, int offset, int len, int seed)`
  Returns the MurmurHash3_x86_32 hash.
  `static int`
  `murmurhash3_x86_32(BytesRef bytes, int seed)`
  `static byte[]`
  `randomId()`
  Generates a non-cryptographic globally unique id.
  `static int`
  `sortKeyLength(BytesRef priorTerm, BytesRef currentTerm)`
  Returns the length of `currentTerm` needed for use as a sort key.
  `static boolean`
  `startsWith(byte[] ref, BytesRef prefix)`
  Returns `true` iff the ref starts with the given prefix.
  `static boolean`
  `startsWith(BytesRef ref, BytesRef prefix)`
  Returns `true` iff the ref starts with the given prefix.

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Field Details

  - ### GOOD_FAST_HASH_SEED

    public static final int GOOD_FAST_HASH_SEED
    Pass this as the seed to `murmurhash3_x86_32(byte[], int, int, int)`.

  - ### ID_LENGTH

    public static final int ID_LENGTH
    length in bytes of an ID
    See Also:
      - Constant Field Values

- ## Method Details

  - ### bytesDifference

    public static int bytesDifference(BytesRef priorTerm, BytesRef currentTerm)
    Compares two `BytesRef`, element by element, and returns the number of elements common to both arrays (from the start of each). This method assumes currentTerm comes after priorTerm.
    Parameters:
      `priorTerm` - The first `BytesRef` to compare
      `currentTerm` - The second `BytesRef` to compare
    Returns:
      The number of common elements (from the start of each).

  - ### sortKeyLength

    public static int sortKeyLength(BytesRef priorTerm, BytesRef currentTerm)
    Returns the length of `currentTerm` needed for use as a sort key. so that `BytesRef.compareTo(BytesRef)` still returns the same result. This method assumes currentTerm comes after priorTerm.

  - ### startsWith

    public static boolean startsWith(byte[] ref, BytesRef prefix)
    Returns `true` iff the ref starts with the given prefix. Otherwise `false` .
    Parameters:
      `ref` - the `byte[]` to test
      `prefix` - the expected prefix
    Returns:
      Returns `true` iff the ref starts with the given prefix. Otherwise `false`.

  - ### startsWith

    public static boolean startsWith(BytesRef ref, BytesRef prefix)
    Returns `true` iff the ref starts with the given prefix. Otherwise `false` .
    Parameters:
      `ref` - the `BytesRef` to test
      `prefix` - the expected prefix
    Returns:
      Returns `true` iff the ref starts with the given prefix. Otherwise `false`.

  - ### endsWith

    public static boolean endsWith(BytesRef ref, BytesRef suffix)
    Returns `true` iff the ref ends with the given suffix. Otherwise `false`.
    Parameters:
      `ref` - the `BytesRef` to test
      `suffix` - the expected suffix
    Returns:
      Returns `true` iff the ref ends with the given suffix. Otherwise `false` .

  - ### murmurhash3_x86_32

    public static int murmurhash3_x86_32(byte[] data, int offset, int len, int seed)
    Returns the MurmurHash3_x86_32 hash. Original source/tests at https://github.com/yonik/java_util/

  - ### murmurhash3_x86_32

    public static int murmurhash3_x86_32(BytesRef bytes, int seed)

  - ### murmurhash3_x64_128

    public static long[] murmurhash3_x64_128(byte[] data, int offset, int length, int seed)
    Generates 128-bit hash from the byte array with the given offset, length and seed.

    The code is adopted from Apache Commons (link)

    Parameters:
      `data` - The input byte array
      `offset` - The first element of array
      `length` - The length of array
      `seed` - The initial seed value
    Returns:
      The 128-bit hash (2 longs)

  - ### murmurhash3_x64_128

    public static long[] murmurhash3_x64_128(BytesRef data)
    Generates 128-bit hash from the byte array with the given offset, length and seed.

    The code is adopted from Apache Commons (link)

    Parameters:
      `data` - The input data
    Returns:
      The 128-bit hash (2 longs)

  - ### randomId

    public static byte[] randomId()
    Generates a non-cryptographic globally unique id.

  - ### idToString

    public static String idToString(byte[] id)
    Helper method to render an ID as a string, for debugging

    Returns the string `(null)` if the id is null. Otherwise, returns a string representation for debugging. Never throws an exception. The returned string may indicate if the id is definitely invalid.

  - ### intsRefToBytesRef

    public static BytesRef intsRefToBytesRef(IntsRef ints)
    Just converts each int in the incoming `IntsRef` to each byte in the returned `BytesRef`, throwing `IllegalArgumentException` if any int value is out of bounds for a byte.