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

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