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
`static int` `GOOD_FAST_HASH_SEED` Pass this as the seed to `murmurhash3_x86_32(byte[], int, int, int)`.
`static int` `ID_LENGTH` length in bytes of an ID

### Method Summary

All Methods Static Methods Concrete Methods
`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 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 Detail

#### 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 Detail

#### 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)

#### 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.