Interface CharSequence
- All Known Implementing Classes:
CharBuffer
,Segment
,String
,StringBuffer
,StringBuilder
CharSequence
is a readable sequence of char
values. This
interface provides uniform, read-only access to many different kinds of
char
sequences.
A char
value represents a character in the Basic
Multilingual Plane (BMP) or a surrogate. Refer to Unicode Character Representation for details.
This interface does not refine the general contracts of the equals
and hashCode
methods. The result of testing two objects
that implement CharSequence
for equality is therefore, in general, undefined.
Each object may be implemented by a different class, and there
is no guarantee that each class will be capable of testing its instances
for equality with those of the other. It is therefore inappropriate to use
arbitrary CharSequence
instances as elements in a set or as keys in
a map.
- Since:
- 1.4
-
Method Summary
Modifier and TypeMethodDescriptionchar
charAt
(int index) Returns thechar
value at the specified index.default IntStream
chars()
Returns a stream ofint
zero-extending thechar
values from this sequence.default IntStream
Returns a stream of code point values from this sequence.static int
compare
(CharSequence cs1, CharSequence cs2) Compares twoCharSequence
instances lexicographically.default boolean
isEmpty()
Returnstrue
if this character sequence is empty.int
length()
Returns the length of this character sequence.subSequence
(int start, int end) Returns aCharSequence
that is a subsequence of this sequence.toString()
Returns a string containing the characters in this sequence in the same order as this sequence.
-
Method Details
-
length
int length()Returns the length of this character sequence. The length is the number of 16-bitchar
s in the sequence.- Returns:
- the number of
char
s in this sequence
-
charAt
char charAt(int index) Returns thechar
value at the specified index. An index ranges from zero tolength() - 1
. The firstchar
value of the sequence is at index zero, the next at index one, and so on, as for array indexing.If the
char
value specified by the index is a surrogate, the surrogate value is returned.- Parameters:
index
- the index of thechar
value to be returned- Returns:
- the specified
char
value - Throws:
IndexOutOfBoundsException
- if theindex
argument is negative or not less thanlength()
-
isEmpty
default boolean isEmpty()Returnstrue
if this character sequence is empty.- Implementation Requirements:
- The default implementation returns the result of calling
length() == 0
. - Returns:
true
iflength()
is0
, otherwisefalse
- Since:
- 15
-
subSequence
Returns aCharSequence
that is a subsequence of this sequence. The subsequence starts with thechar
value at the specified index and ends with thechar
value at indexend - 1
. The length (inchar
s) of the returned sequence isend - start
, so ifstart == end
then an empty sequence is returned.- Parameters:
start
- the start index, inclusiveend
- the end index, exclusive- Returns:
- the specified subsequence
- Throws:
IndexOutOfBoundsException
- ifstart
orend
are negative, ifend
is greater thanlength()
, or ifstart
is greater thanend
-
toString
-
chars
Returns a stream ofint
zero-extending thechar
values from this sequence. Any char which maps to a surrogate code point is passed through uninterpreted.The stream binds to this sequence when the terminal stream operation commences (specifically, for mutable sequences the spliterator for the stream is late-binding). If the sequence is modified during that operation then the result is undefined.
- Returns:
- an IntStream of char values from this sequence
- Since:
- 1.8
-
codePoints
Returns a stream of code point values from this sequence. Any surrogate pairs encountered in the sequence are combined as if by Character.toCodePoint and the result is passed to the stream. Any other code units, including ordinary BMP characters, unpaired surrogates, and undefined code units, are zero-extended toint
values which are then passed to the stream.The stream binds to this sequence when the terminal stream operation commences (specifically, for mutable sequences the spliterator for the stream is late-binding). If the sequence is modified during that operation then the result is undefined.
- Returns:
- an IntStream of Unicode code points from this sequence
- Since:
- 1.8
-
compare
Compares twoCharSequence
instances lexicographically. Returns a negative value, zero, or a positive value if the first sequence is lexicographically less than, equal to, or greater than the second, respectively.The lexicographical ordering of
CharSequence
is defined as follows. Consider aCharSequence
cs of length len to be a sequence of char values, cs[0] to cs[len-1]. Suppose k is the lowest index at which the corresponding char values from each sequence differ. The lexicographic ordering of the sequences is determined by a numeric comparison of the char values cs1[k] with cs2[k]. If there is no such index k, the shorter sequence is considered lexicographically less than the other. If the sequences have the same length, the sequences are considered lexicographically equal.- Parameters:
cs1
- the firstCharSequence
cs2
- the secondCharSequence
- Returns:
- the value
0
if the twoCharSequence
are equal; a negative integer if the firstCharSequence
is lexicographically less than the second; or a positive integer if the firstCharSequence
is lexicographically greater than the second. - Since:
- 11
-