Module java.base
Package java.lang

Interface CharSequence

已知的所有子接口:
Name
已知的所有实现类:
CharBuffer, Segment, String, StringBuffer, StringBuilder

public interface CharSequence
CharSequence 是一系列可读取的 char 值。该接口提供对许多不同类型的 char 序列的统一、只读访问。一个 char 值代表 基本多文种平面(BMP) 中的字符或代理项。有关详细信息,请参阅Unicode字符表示

该接口不规定 equalshashCode 方法的一般约定。因此,测试实现 CharSequence 接口的两个对象的相等性的结果通常是未定义的。每个对象可能由不同的类实现,并且不能保证每个类都能够测试其实例与其他实例的相等性。因此,不适合将任意的 CharSequence 实例用作集合中的元素或映射中的键。

自 JDK 版本:
1.4
  • Method Summary

    Modifier and Type
    Method
    Description
    char
    charAt(int index)
    返回指定索引处的 char 值。
    default IntStream
    chars()
    返回从该序列中的 char 值零扩展的 int 流。
    default IntStream
    返回从该序列中的代码点值的流。
    static int
    按字典顺序比较两个 CharSequence 实例。
    default boolean
    如果此字符序列为空,则返回 true
    int
    length()
    返回此字符序列的长度。
    subSequence(int start, int end)
    返回此序列的子序列的 CharSequence
    返回一个字符串,其中包含与该序列中的字符顺序相同的字符。
  • Method Details

    • length

      int length()
      返回此字符序列的长度。长度是序列中 16 位 char 的数量。
      返回结果:
      此序列中的 char 数量
    • charAt

      char charAt(int index)
      返回指定索引处的 char 值。索引范围从零到 length() - 1。序列的第一个 char 值位于索引零,下一个位于索引一,依此类推,就像数组索引一样。

      如果索引指定的 char 值是一个 代理项,则返回代理项值。

      参数:
      index - 要返回的 char 值的索引
      返回结果:
      指定的 char
      抛出:
      IndexOutOfBoundsException - 如果 index 参数为负数或不小于 length()
    • isEmpty

      default boolean isEmpty()
      如果此字符序列为空,则返回 true
      实现要求:
      默认实现返回调用 length() == 0 的结果。
      返回结果:
      如果 length()0,则返回 true,否则返回 false
      自 JDK 版本:
      15
    • subSequence

      CharSequence subSequence(int start, int end)
      返回此序列的子序列的 CharSequence。子序列从指定索引处的 char 值开始,并以索引 end - 1 处的 char 值结束。返回序列的长度(以 char 为单位)为 end - start,因此如果 start == end,则返回一个空序列。
      参数:
      start - 起始索引(包括)
      end - 结束索引(不包括)
      返回结果:
      指定的子序列
      抛出:
      IndexOutOfBoundsException - 如果 startend 为负数,如果 end 大于 length(),或者如果 start 大于 end
    • toString

      String toString()
      返回一个字符串,其中包含与该序列中的字符顺序相同的字符。字符串的长度将是此序列的长度。
      覆盖:
      toString 在类 Object
      返回结果:
      由这些字符组成的字符串
    • chars

      default IntStream chars()
      返回从该序列中的 char 值零扩展的 int 流。任何映射到 代理项代码点 的字符都将不加解释地传递。

      当终端流操作开始时(具体来说,对于可变序列,流的分割器是延迟绑定),流将绑定到此序列。如果在该操作期间修改了序列,则结果是未定义的。

      返回结果:
      从此序列中的 char 值的 IntStream
      自 JDK 版本:
      1.8
    • codePoints

      default IntStream codePoints()
      返回从该序列中的代码点值的流。在序列中遇到的代理对将被组合,就像通过 Character.toCodePoint,并将结果传递给流。任何其他代码单元,包括普通的 BMP 字符、未配对的代理项和未定义的代码单元,都将被零扩展为 int 值,然后传递给流。

      当终端流操作开始时(具体来说,对于可变序列,流的分割器是延迟绑定),流将绑定到此序列。如果在该操作期间修改了序列,则结果是未定义的。

      返回结果:
      从此序列中的 Unicode 代码点的 IntStream
      自 JDK 版本:
      1.8
    • compare

      static int compare(CharSequence cs1, CharSequence cs2)
      按字典顺序比较两个 CharSequence 实例。如果第一个序列按字典顺序小于、等于或大于第二个序列,则返回负值、零或正值。

      CharSequence 的字典顺序定义如下。将长度为 lenCharSequence cs 视为一系列 char 值,从 cs[0]cs[len-1]。假设 k 是每个序列中相应的 char 值不同的最低索引。序列的字典顺序由 char 值 cs1[k]cs2[k] 的数字比较确定。如果没有这样的索引 k,则较短的序列被认为按字典顺序小于另一个序列。如果序列具有相同的长度,则认为序列在字典顺序上相等。

      参数:
      cs1 - 第一个 CharSequence
      cs2 - 第二个 CharSequence
      返回结果:
      如果两个 CharSequence 相等,则返回值 0;如果第一个 CharSequence 按字典顺序小于第二个,则返回负整数;如果第一个 CharSequence 按字典顺序大于第二个,则返回正整数。
      自 JDK 版本:
      11