public class Twine16 extends UnicodeString
Twine16 is a Unicode string consisting entirely of codepoints in the range 0-65535
(that is, the basic multilingual plane), excluding surrogates. The number of codepoints
is limited to 2^31-1.| Modifier and Type | Field and Description |
|---|---|
protected int |
cachedHash |
protected char[] |
chars |
| Modifier | Constructor and Description |
|---|---|
protected |
Twine16(char[] chars)
Protected constructor
|
|
Twine16(char[] chars,
int start,
int len)
Constructor taking an array of 16-bit chars, or a substring thereof.
|
| 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 StringValue is equal to another under the rules of the codepoint collation.
|
char[] |
getCharArray() |
int |
getWidth()
Get the number of bits needed to hold all the characters in this string
|
int |
hashCode()
Compute a hashCode.
|
long |
indexOf(int codePoint,
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()
Convert to a string.
|
asAtomic, checkSubstringBounds, concat, economize, estimatedLength, hasSubstring, indexOf, prefix, requireInt, substring, tidy, verifyCharactersprotected Twine16(char[] chars)
chars - the 16-bit characters comprising the string: must not include any surrogatespublic Twine16(char[] chars,
int start,
int len)
chars - the array of characters (must not include any surrogates)start - start offset into the arraylen - the number of characters to be included.public char[] getCharArray()
public long length()
length in class UnicodeStringpublic int length32()
UnicodeStringlength32 in class UnicodeStringintpublic UnicodeString substring(long start, long end)
String.substring(int), but measuring
Unicode codepoints rather than 16-bit code units)substring in class UnicodeStringstart - 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
UnicodeStringcodePointAt in class UnicodeStringindex - the given position (0-based)java.lang.IndexOutOfBoundsException - if the index is out of rangepublic long indexOf(int codePoint,
long from)
indexOf in class UnicodeStringcodePoint - 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 UnicodeStringother - the other (sought) stringfrom - the position (0-based) where searching is to start (counting in codepoints)public boolean isEmpty()
isEmpty in class UnicodeStringpublic int getWidth()
UnicodeStringgetWidth in class UnicodeStringpublic IntIterator codePoints()
codePoints in class UnicodeStringpublic 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 UnicodeStringpublic boolean equals(java.lang.Object o)
equals in class UnicodeStringo - the value to be compared with this valuepublic int compareTo(UnicodeString other)
UnicodeStringcompareTo in interface java.lang.Comparable<UnicodeString>compareTo in class UnicodeStringother - the other stringpublic java.lang.String toString()
toString in class java.lang.Objectpublic long indexWhere(java.util.function.IntPredicate predicate,
long from)
indexWhere in class UnicodeStringpredicate - 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.