Module java.base
Package java.lang

Interface CharSequence

  • All Known Subinterfaces:
    Name
    All Known Implementing Classes:
    CharBuffer,Segment,String,StringBuffer,StringBuilder

    public interfaceCharSequence
    ACharSequence is a readable sequence ofchar values. This interface provides uniform, read-only access to many different kinds ofchar sequences. Achar value represents a character in theBasic Multilingual Plane (BMP) or a surrogate. Refer toUnicode Character Representation for details.

    This interface does not refine the general contracts of theequals andhashCode methods. The result of testing two objects that implementCharSequence 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 arbitraryCharSequence instances as elements in a set or as keys in a map.

    Since:
    1.4
    • Method Detail

      • length

        int length()
        Returns the length of this character sequence. The length is the number of 16-bitchars in the sequence.
        Returns:
        the number ofchars 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 thechar value specified by the index is asurrogate, the surrogate value is returned.

        Parameters:
        index - the index of thechar value to be returned
        Returns:
        the specifiedchar value
        Throws:
        IndexOutOfBoundsException - if theindex argument is negative or not less thanlength()
      • subSequence

        CharSequence subSequence​(int start,                         int end)
        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 (inchars) of the returned sequence isend - start, so ifstart == end then an empty sequence is returned.
        Parameters:
        start - the start index, inclusive
        end - the end index, exclusive
        Returns:
        the specified subsequence
        Throws:
        IndexOutOfBoundsException - ifstart orend are negative, ifend is greater thanlength(), or ifstart is greater thanend
      • toString

        String toString()
        Returns a string containing the characters in this sequence in the same order as this sequence. The length of the string will be the length of this sequence.
        Overrides:
        toString in class Object
        Returns:
        a string consisting of exactly this sequence of characters
      • chars

        default IntStream chars()
        Returns a stream ofint zero-extending thechar values from this sequence. Any char which maps to asurrogate 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 islate-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

        default IntStream codePoints()
        Returns a stream of code point values from this sequence. Any surrogate pairs encountered in the sequence are combined as if byCharacter.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 islate-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

        static int compare​(CharSequence cs1,CharSequence cs2)
        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 ofCharSequence is defined as follows. Consider aCharSequencecs of lengthlen to be a sequence of char values,cs[0] tocs[len-1]. Supposek 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 valuescs1[k] withcs2[k]. If there is no such indexk, 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 value0 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