- java.lang.Object
-
- org.xnio.ByteString
-
- All Implemented Interfaces:
java.io.Serializable
,java.lang.CharSequence
,java.lang.Comparable<ByteString>
public final class ByteString extends java.lang.Object implements java.lang.Comparable<ByteString>, java.io.Serializable, java.lang.CharSequence
An immutable string of bytes. Since instances of this class are guaranteed to be immutable, they are safe to use asOption
values and in anOptionMap
. Some operations can treat this byte string as an ASCII- or ISO-8858-1-encoded character string.- See Also:
- Serialized Form
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description void
appendTo(java.nio.ByteBuffer dest)
Append the bytes of this string into the given buffer.byte
byteAt(int idx)
Get the byte at an index.char
charAt(int index)
int
compareTo(ByteString other)
Compare this string to another in a case-sensitive manner.int
compareToIgnoreCase(ByteString other)
Compare this string to another in a case-insensitive manner.ByteString
concat(byte[] suffixBytes)
ByteString
concat(byte[] suffixBytes, int offs, int len)
ByteString
concat(java.lang.String suffix)
ByteString
concat(java.lang.String suffix, int offs, int len)
static ByteString
concat(java.lang.String prefix, java.lang.String suffix)
static ByteString
concat(java.lang.String prefix, ByteString suffix)
ByteString
concat(ByteString suffix)
ByteString
concat(ByteString suffix, int offs, int len)
boolean
contains(java.lang.String other)
Determine whether this string contains another string (case-sensitive).boolean
contains(ByteString other)
Determine whether this string contains another string (case-sensitive).boolean
containsIgnoreCase(java.lang.String other)
Determine whether this string contains another string (case-sensitive).boolean
containsIgnoreCase(ByteString other)
Determine whether this string contains another string (case-insensitive).static ByteString
copyOf(byte[] b, int offs, int len)
Create a byte string from the given array segment.void
copyTo(byte[] dst)
Copy all the bytes from this string to the given array at the given offset.void
copyTo(byte[] dst, int offs)
Copy all the bytes from this string to the given array at the given offset.void
copyTo(byte[] dst, int offs, int len)
Copylen
bytes from this string to the given array at the given offset.void
copyTo(int srcOffs, byte[] dst, int offs, int len)
Copylen
bytes from this string at offsetsrcOffs
to the given array at the given offset.boolean
endsWith(char suffix)
boolean
endsWith(java.lang.String suffix)
boolean
endsWith(ByteString suffix)
boolean
endsWithIgnoreCase(char suffix)
boolean
endsWithIgnoreCase(java.lang.String suffix)
boolean
endsWithIgnoreCase(ByteString suffix)
boolean
equals(java.lang.Object obj)
Determine if this ByteString equals another ByteString.boolean
equals(ByteString other)
Determine if this ByteString equals another ByteString.boolean
equalsIgnoreCase(ByteString other)
Determine if this ByteString equals another ByteString, ignoring case (ASCII).boolean
equalToString(java.lang.String str)
Determine whether thisByteString
is equal (case-sensitively) to the givenString
.boolean
equalToStringIgnoreCase(java.lang.String str)
Determine whether thisByteString
is equal (case-insensitively) to the givenString
.static ByteString
fromInt(int val)
Get a string version of the given value.static ByteString
fromLong(long val)
Get a string version of the given value.byte[]
getBytes()
Get a copy of the bytes of this ByteString.void
getBytes(byte[] dest)
Deprecated.Replaced bycopyTo(byte[])
.void
getBytes(byte[] dest, int offs)
Deprecated.Replaced bycopyTo(byte[],int)
.void
getBytes(byte[] dest, int offs, int len)
Deprecated.Replaced bycopyTo(byte[],int,int)
.static ByteString
getBytes(java.lang.String str)
Get a byte string from the bytes of the character string.static ByteString
getBytes(java.lang.String str, java.lang.String charset)
Get a byte string from the bytes of a character string.static ByteString
getBytes(java.lang.String str, java.nio.charset.Charset charset)
Get a byte string from the bytes of a character string.static ByteString
getBytes(java.nio.ByteBuffer buffer)
Get a byte string from all remaining bytes of a ByteBuffer.static ByteString
getBytes(java.nio.ByteBuffer buffer, int length)
Get a byte string from a ByteBuffer.int
hashCode()
Get the hash code for this ByteString.int
hashCodeIgnoreCase()
int
indexOf(char c)
Get the index of the given character in this string.int
indexOf(char c, int start)
Get the index of the given character in this string.int
indexOf(java.lang.String other)
int
indexOf(java.lang.String other, int start)
int
indexOf(ByteString other)
int
indexOf(ByteString other, int start)
int
indexOfIgnoreCase(java.lang.String other)
int
indexOfIgnoreCase(java.lang.String other, int start)
int
indexOfIgnoreCase(ByteString other)
int
indexOfIgnoreCase(ByteString other, int start)
int
lastIndexOf(char c)
Get the last index of the given character in this string.int
lastIndexOf(char c, int start)
Get the last index of the given character in this string.int
lastIndexOf(java.lang.String other)
int
lastIndexOf(java.lang.String other, int start)
int
lastIndexOf(ByteString other)
int
lastIndexOf(ByteString other, int start)
int
lastIndexOfIgnoreCase(java.lang.String other)
int
lastIndexOfIgnoreCase(java.lang.String other, int start)
int
lastIndexOfIgnoreCase(ByteString other)
int
lastIndexOfIgnoreCase(ByteString other, int start)
int
length()
Get the number of bytes in this byte string.static ByteString
of(byte... bytes)
Create a byte string of the given literal bytes.boolean
regionMatches(boolean ignoreCase, int offset, byte[] other, int otherOffset, int len)
boolean
regionMatches(boolean ignoreCase, int offset, java.lang.String other, int otherOffset, int len)
boolean
regionMatches(boolean ignoreCase, int offset, ByteString other, int otherOffset, int len)
boolean
startsWith(char prefix)
boolean
startsWith(java.lang.String prefix)
boolean
startsWith(ByteString prefix)
boolean
startsWithIgnoreCase(char prefix)
boolean
startsWithIgnoreCase(java.lang.String prefix)
boolean
startsWithIgnoreCase(ByteString prefix)
ByteString
subSequence(int start, int end)
ByteString
substring(int offs)
Get the substring of this string starting at the given offset.ByteString
substring(int offs, int len)
Get the substring of this string starting at the given offset.int
toInt()
Get the unsignedint
value of this string.int
toInt(int start)
Get the unsignedint
value of this string.long
toLong()
Get the unsignedlong
value of this string.long
toLong(int start)
Get the unsignedlong
value of this string.java.lang.String
toString()
Decode this byte string as a Latin-1 string.java.lang.String
toString(java.lang.String charset)
Convert this byte string to a standard string.java.lang.String
toUtf8String()
Decode this byte string as a UTF-8 string.int
tryAppendTo(int offs, java.nio.ByteBuffer buffer)
Append as many bytes as possible to a byte buffer.void
writeTo(java.io.OutputStream output)
Append to an output stream.
-
-
-
Method Detail
-
of
public static ByteString of(byte... bytes)
Create a byte string of the given literal bytes. The given array is copied.- Parameters:
bytes
- the bytes- Returns:
- the byte string
-
copyOf
public static ByteString copyOf(byte[] b, int offs, int len)
Create a byte string from the given array segment.- Parameters:
b
- the byte arrayoffs
- the offset into the arraylen
- the number of bytes to copy- Returns:
- the new byte string
-
getBytes
public static ByteString getBytes(java.lang.String str, java.lang.String charset) throws java.io.UnsupportedEncodingException
Get a byte string from the bytes of a character string.- Parameters:
str
- the character stringcharset
- the character set to use- Returns:
- the byte string
- Throws:
java.io.UnsupportedEncodingException
- if the encoding is not supported
-
getBytes
public static ByteString getBytes(java.lang.String str, java.nio.charset.Charset charset)
Get a byte string from the bytes of a character string.- Parameters:
str
- the character stringcharset
- the character set to use- Returns:
- the byte string
-
getBytes
public static ByteString getBytes(java.lang.String str)
Get a byte string from the bytes of the character string. The string must be a Latin-1 string.- Parameters:
str
- the character string- Returns:
- the byte string
-
getBytes
public static ByteString getBytes(java.nio.ByteBuffer buffer)
Get a byte string from all remaining bytes of a ByteBuffer.- Parameters:
buffer
- the buffer- Returns:
- the byte string
-
getBytes
public static ByteString getBytes(java.nio.ByteBuffer buffer, int length)
Get a byte string from a ByteBuffer.- Parameters:
buffer
- the bufferlength
- the number of bytes to get- Returns:
- the byte string
-
getBytes
public byte[] getBytes()
Get a copy of the bytes of this ByteString.- Returns:
- the copy
-
getBytes
public void getBytes(byte[] dest)
Deprecated.Replaced bycopyTo(byte[])
.Copy the bytes of this ByteString into the destination array. If the array is too short to hold the bytes, then only enough bytes to fill the array will be copied.- Parameters:
dest
- the destination array
-
getBytes
public void getBytes(byte[] dest, int offs)
Deprecated.Replaced bycopyTo(byte[],int)
.Copy the bytes of this ByteString into the destination array. If the array is too short to hold the bytes, then only enough bytes to fill the array will be copied.- Parameters:
dest
- the destination arrayoffs
- the offset into the destination array
-
getBytes
public void getBytes(byte[] dest, int offs, int len)
Deprecated.Replaced bycopyTo(byte[],int,int)
.Copy the bytes of this ByteString into the destination array. If the array is too short to hold the bytes, then only enough bytes to fill the array will be copied.- Parameters:
dest
- the destination arrayoffs
- the offset into the destination arraylen
- the maximum number of bytes to copy
-
copyTo
public void copyTo(int srcOffs, byte[] dst, int offs, int len)
Copylen
bytes from this string at offsetsrcOffs
to the given array at the given offset.- Parameters:
srcOffs
- the source offsetdst
- the destinationoffs
- the destination offsetlen
- the number of bytes to copy
-
copyTo
public void copyTo(byte[] dst, int offs, int len)
Copylen
bytes from this string to the given array at the given offset.- Parameters:
dst
- the destinationoffs
- the destination offsetlen
- the number of bytes
-
copyTo
public void copyTo(byte[] dst, int offs)
Copy all the bytes from this string to the given array at the given offset.- Parameters:
dst
- the destinationoffs
- the destination offset
-
copyTo
public void copyTo(byte[] dst)
Copy all the bytes from this string to the given array at the given offset.- Parameters:
dst
- the destination
-
appendTo
public void appendTo(java.nio.ByteBuffer dest)
Append the bytes of this string into the given buffer.- Parameters:
dest
- the target buffer
-
tryAppendTo
public int tryAppendTo(int offs, java.nio.ByteBuffer buffer)
Append as many bytes as possible to a byte buffer.- Parameters:
offs
- the start offsetbuffer
- the buffer to append to- Returns:
- the number of bytes appended
-
writeTo
public void writeTo(java.io.OutputStream output) throws java.io.IOException
Append to an output stream.- Parameters:
output
- the stream to write to- Throws:
java.io.IOException
- if an error occurs
-
compareTo
public int compareTo(ByteString other)
Compare this string to another in a case-sensitive manner.- Specified by:
compareTo
in interfacejava.lang.Comparable<ByteString>
- Parameters:
other
- the other string- Returns:
- -1, 0, or 1
-
compareToIgnoreCase
public int compareToIgnoreCase(ByteString other)
Compare this string to another in a case-insensitive manner.- Parameters:
other
- the other string- Returns:
- -1, 0, or 1
-
toString
public java.lang.String toString(java.lang.String charset) throws java.io.UnsupportedEncodingException
Convert this byte string to a standard string.- Parameters:
charset
- the character set to use- Returns:
- the standard string
- Throws:
java.io.UnsupportedEncodingException
- if the charset is unknown
-
length
public int length()
Get the number of bytes in this byte string.- Specified by:
length
in interfacejava.lang.CharSequence
- Returns:
- the number of bytes
-
toString
public java.lang.String toString()
Decode this byte string as a Latin-1 string.- Specified by:
toString
in interfacejava.lang.CharSequence
- Overrides:
toString
in classjava.lang.Object
- Returns:
- the Latin-1-decoded version of this string
-
toUtf8String
public java.lang.String toUtf8String()
Decode this byte string as a UTF-8 string.- Returns:
- the UTF-8-decoded version of this string
-
byteAt
public byte byteAt(int idx)
Get the byte at an index.- Returns:
- the byte at an index
-
substring
public ByteString substring(int offs)
Get the substring of this string starting at the given offset.- Parameters:
offs
- the offset- Returns:
- the substring
-
substring
public ByteString substring(int offs, int len)
Get the substring of this string starting at the given offset.- Parameters:
offs
- the offsetlen
- the substring length- Returns:
- the substring
-
hashCode
public int hashCode()
Get the hash code for this ByteString.- Overrides:
hashCode
in classjava.lang.Object
- Returns:
- the hash code
-
hashCodeIgnoreCase
public int hashCodeIgnoreCase()
-
equals
public boolean equals(java.lang.Object obj)
Determine if this ByteString equals another ByteString.- Overrides:
equals
in classjava.lang.Object
- Parameters:
obj
- the other object- Returns:
true
if they are equal
-
equals
public boolean equals(ByteString other)
Determine if this ByteString equals another ByteString.- Parameters:
other
- the other object- Returns:
true
if they are equal
-
equalsIgnoreCase
public boolean equalsIgnoreCase(ByteString other)
Determine if this ByteString equals another ByteString, ignoring case (ASCII).- Parameters:
other
- the other object- Returns:
true
if they are equal
-
toInt
public int toInt(int start)
Get the unsignedint
value of this string. If the value is greater than would fit in 32 bits, only the low 32 bits are returned. Parsing stops on the first non-digit character.- Parameters:
start
- the index to start at (must be less than or equal to length)- Returns:
- the value
-
toInt
public int toInt()
Get the unsignedint
value of this string. If the value is greater than would fit in 32 bits, only the low 32 bits are returned. Parsing stops on the first non-digit character.- Returns:
- the value
-
toLong
public long toLong(int start)
Get the unsignedlong
value of this string. If the value is greater than would fit in 64 bits, only the low 64 bits are returned. Parsing stops on the first non-digit character.- Parameters:
start
- the index to start at (must be less than or equal to length)- Returns:
- the value
-
toLong
public long toLong()
Get the unsignedlong
value of this string. If the value is greater than would fit in 64 bits, only the low 64 bits are returned. Parsing stops on the first non-digit character.- Returns:
- the value
-
fromLong
public static ByteString fromLong(long val)
Get a string version of the given value.- Parameters:
val
- the value- Returns:
- the string
-
fromInt
public static ByteString fromInt(int val)
Get a string version of the given value.- Parameters:
val
- the value- Returns:
- the string
-
equalToString
public boolean equalToString(java.lang.String str)
Determine whether thisByteString
is equal (case-sensitively) to the givenString
.- Parameters:
str
- the string to check- Returns:
true
if the given string is equal (case-sensitively) to this instance,false
otherwise
-
equalToStringIgnoreCase
public boolean equalToStringIgnoreCase(java.lang.String str)
Determine whether thisByteString
is equal (case-insensitively) to the givenString
.- Parameters:
str
- the string to check- Returns:
true
if the given string is equal (case-insensitively) to this instance,false
otherwise
-
indexOf
public int indexOf(char c)
Get the index of the given character in this string.- Parameters:
c
- the character- Returns:
- the index, or -1 if it was not found
-
indexOf
public int indexOf(char c, int start)
Get the index of the given character in this string.- Parameters:
c
- the character- Returns:
- the index, or -1 if it was not found
-
lastIndexOf
public int lastIndexOf(char c)
Get the last index of the given character in this string.- Parameters:
c
- the character- Returns:
- the index, or -1 if it was not found
-
lastIndexOf
public int lastIndexOf(char c, int start)
Get the last index of the given character in this string.- Parameters:
c
- the character- Returns:
- the index, or -1 if it was not found
-
contains
public boolean contains(ByteString other)
Determine whether this string contains another string (case-sensitive).- Parameters:
other
- the string to test- Returns:
true
if this string containsother
,false
otherwise
-
contains
public boolean contains(java.lang.String other)
Determine whether this string contains another string (case-sensitive).- Parameters:
other
- the string to test- Returns:
true
if this string containsother
,false
otherwise
-
containsIgnoreCase
public boolean containsIgnoreCase(ByteString other)
Determine whether this string contains another string (case-insensitive).- Parameters:
other
- the string to test- Returns:
true
if this string containsother
,false
otherwise
-
containsIgnoreCase
public boolean containsIgnoreCase(java.lang.String other)
Determine whether this string contains another string (case-sensitive).- Parameters:
other
- the string to test- Returns:
true
if this string containsother
,false
otherwise
-
indexOf
public int indexOf(ByteString other)
-
indexOf
public int indexOf(ByteString other, int start)
-
indexOf
public int indexOf(java.lang.String other)
-
indexOf
public int indexOf(java.lang.String other, int start)
-
indexOfIgnoreCase
public int indexOfIgnoreCase(ByteString other)
-
indexOfIgnoreCase
public int indexOfIgnoreCase(ByteString other, int start)
-
indexOfIgnoreCase
public int indexOfIgnoreCase(java.lang.String other)
-
indexOfIgnoreCase
public int indexOfIgnoreCase(java.lang.String other, int start)
-
lastIndexOf
public int lastIndexOf(ByteString other)
-
lastIndexOf
public int lastIndexOf(ByteString other, int start)
-
lastIndexOf
public int lastIndexOf(java.lang.String other)
-
lastIndexOf
public int lastIndexOf(java.lang.String other, int start)
-
lastIndexOfIgnoreCase
public int lastIndexOfIgnoreCase(ByteString other)
-
lastIndexOfIgnoreCase
public int lastIndexOfIgnoreCase(ByteString other, int start)
-
lastIndexOfIgnoreCase
public int lastIndexOfIgnoreCase(java.lang.String other)
-
lastIndexOfIgnoreCase
public int lastIndexOfIgnoreCase(java.lang.String other, int start)
-
regionMatches
public boolean regionMatches(boolean ignoreCase, int offset, byte[] other, int otherOffset, int len)
-
regionMatches
public boolean regionMatches(boolean ignoreCase, int offset, ByteString other, int otherOffset, int len)
-
regionMatches
public boolean regionMatches(boolean ignoreCase, int offset, java.lang.String other, int otherOffset, int len)
-
startsWith
public boolean startsWith(ByteString prefix)
-
startsWith
public boolean startsWith(java.lang.String prefix)
-
startsWith
public boolean startsWith(char prefix)
-
startsWithIgnoreCase
public boolean startsWithIgnoreCase(ByteString prefix)
-
startsWithIgnoreCase
public boolean startsWithIgnoreCase(java.lang.String prefix)
-
startsWithIgnoreCase
public boolean startsWithIgnoreCase(char prefix)
-
endsWith
public boolean endsWith(ByteString suffix)
-
endsWith
public boolean endsWith(java.lang.String suffix)
-
endsWith
public boolean endsWith(char suffix)
-
endsWithIgnoreCase
public boolean endsWithIgnoreCase(ByteString suffix)
-
endsWithIgnoreCase
public boolean endsWithIgnoreCase(java.lang.String suffix)
-
endsWithIgnoreCase
public boolean endsWithIgnoreCase(char suffix)
-
concat
public ByteString concat(byte[] suffixBytes)
-
concat
public ByteString concat(byte[] suffixBytes, int offs, int len)
-
concat
public ByteString concat(ByteString suffix)
-
concat
public ByteString concat(ByteString suffix, int offs, int len)
-
concat
public ByteString concat(java.lang.String suffix)
-
concat
public ByteString concat(java.lang.String suffix, int offs, int len)
-
concat
public static ByteString concat(java.lang.String prefix, ByteString suffix)
-
concat
public static ByteString concat(java.lang.String prefix, java.lang.String suffix)
-
charAt
public char charAt(int index)
- Specified by:
charAt
in interfacejava.lang.CharSequence
-
subSequence
public ByteString subSequence(int start, int end)
- Specified by:
subSequence
in interfacejava.lang.CharSequence
-
-