public class Twine24 extends UnicodeString
Twine24
is Unicode string that accommodates any codepoint value up to 24 bits.
It never includes any surrogates. The length of the string is limited to 2^31-1 codepoints.Modifier and Type | Field and Description |
---|---|
protected byte[] |
bytes |
protected int |
cachedHash |
Modifier | Constructor and Description |
---|---|
protected |
Twine24(byte[] bytes)
Protected constructor
|
|
Twine24(int[] codePoints)
Construct a
Twine from an array of codepoints. |
|
Twine24(int[] codePoints,
int used)
Construct a
Twine from an array of codepoints. |
Modifier and Type | Method and Description |
---|---|
int |
codePointAt(long index)
Get the code point at a given position in the string
|
IntIterator |
codePoints()
Get an iterator over the Unicode codepoints in the value.
|
int |
compareTo(UnicodeString other)
Compare this string to another using codepoint comparison
|
java.lang.String |
details() |
boolean |
equals(java.lang.Object o)
Test whether this string is equal to another under the rules of the codepoint collation.
|
byte[] |
getByteArray() |
int |
getWidth()
Get the number of bits needed to hold all the characters in this string
|
int |
hashCode()
Compute a hashCode.
|
long |
indexOf(int code,
long from)
Get the first position, at or beyond start, where a given codepoint appears
in this string.
|
long |
indexOf(UnicodeString other,
long from)
Get the first position, at or beyond start, where another string appears as a substring
of this string, comparing codepoints.
|
long |
indexWhere(java.util.function.IntPredicate predicate,
long from)
Get the position of the first occurrence of the specified codepoint,
starting the search at a given position in the string
|
boolean |
isEmpty()
Determine whether the string is a zero-length string.
|
long |
length()
Get the length of this string, in codepoints
|
int |
length32()
Get the length of the string, provided it is less than 2^31 characters
|
UnicodeString |
substring(long start,
long end)
Get a substring of this string (following the rules of
String.substring(int) , but measuring
Unicode codepoints rather than 16-bit code units) |
java.lang.String |
toString()
Display as a string.
|
asAtomic, checkSubstringBounds, concat, economize, estimatedLength, hasSubstring, indexOf, prefix, requireInt, substring, tidy, verifyCharacters
protected Twine24(byte[] bytes)
bytes
- the Unicode characters, three bytes per characterpublic Twine24(int[] codePoints, int used)
Twine
from an array of codepoints.codePoints
- the codepoints making up the string: must not contain any surrogates
(that is, codepoints higher than 65535 must be supplied as a single unit)public Twine24(int[] codePoints)
Twine
from an array of codepoints.codePoints
- the codepoints making up the string: must not contain any surrogates
(that is, codepoints higher than 65535 must be supplied as a single unit)public byte[] getByteArray()
public long length()
length
in class UnicodeString
public int length32()
UnicodeString
length32
in class UnicodeString
int
public UnicodeString substring(long start, long end)
String.substring(int)
, but measuring
Unicode codepoints rather than 16-bit code units)substring
in class UnicodeString
start
- the offset of the first character to be included in the result, counting Unicode codepointsend
- the offset of the first character to be excluded from the result, counting Unicode codepointspublic int codePointAt(long index) throws java.lang.IndexOutOfBoundsException
UnicodeString
codePointAt
in class UnicodeString
index
- the given position (0-based)java.lang.IndexOutOfBoundsException
- if the index is out of rangepublic long indexOf(int code, long from)
indexOf
in class UnicodeString
code
- the sought codepointfrom
- the position (0-based) where searching is to start (counting in codepoints)public long indexOf(UnicodeString other, long from)
indexOf
in class UnicodeString
other
- the other (sought) stringfrom
- the position (0-based) where searching is to start (counting in codepoints)public boolean isEmpty()
isEmpty
in class UnicodeString
public int getWidth()
UnicodeString
getWidth
in class UnicodeString
public IntIterator codePoints()
codePoints
in class UnicodeString
public int hashCode()
UnicodeString
use compatible hash codes and the
hashing algorithm is therefore identical to that for java.lang.String
. This means
that for strings containing Astral characters, the hash code needs to be computed by decomposing
an Astral character into a surrogate pair.hashCode
in class UnicodeString
public boolean equals(java.lang.Object o)
equals
in class UnicodeString
o
- the value to be compared with this valuepublic int compareTo(UnicodeString other)
UnicodeString
compareTo
in interface java.lang.Comparable<UnicodeString>
compareTo
in class UnicodeString
other
- the other stringpublic java.lang.String toString()
toString
in class java.lang.Object
public long indexWhere(java.util.function.IntPredicate predicate, long from)
indexWhere
in class UnicodeString
predicate
- condition that the codepoint must satisfyfrom
- the position from which the search should start (0-based)java.lang.UnsupportedOperationException
- if the UnicodeString
has not been prepared
for codePoint accesspublic java.lang.String details()
Copyright (c) 2004-2022 Saxonica Limited. All rights reserved.