CharSequence字符序列化

CharSequence是一个描述字符串结构的接口,在这个接口里面一般发现有三种常用的子类:

CharSequence类是java.lang包下的一个接口,此接口对多种不同的对char访问的统一接口,像String、StringBuffer、StringBuilder类都是CharSequence的子接口;

CharSequence类和String类都可以定义字符串,但是String定义的字符串只能读,CharSequence定义的字符串是可读可写的;

对于抽象类或者接口来说不可以直接使用new的方式创建对象,但是可以直接给它赋值;
CharSequence b = "s";

String类:

public final class String extends Object implements Serializable, Comparable<String>, CharSequence

StringBuffer类:

public final class StringBuffer extends Object implements Serializable, CharSequence

StringBuilder类:

public final class StringBuilder extends Object implements Serializable, CharSequence

现在只要有字符串就可以为CharSequence实例化,CharSequence本身是一个接口,在该接口中有如下方法:

  • 获取指定索引的字符:public char charAt​(int index);
  • 获取字符串长度:public int length​();
  • 截取部分字符串:public CharSequence subSequence​(int start, int end);
    范例:字符串截取
  •     public static void main(String[] args) {
           CharSequence str = "hello world";
           CharSequence sub = str.subSequence(6,11);
            System.out.println(sub);
        }
  • CharSequence接口的源码
  • package java.lang;


    /**
     * A <tt>CharSequence</tt> is a readable sequence of <code>char</code> values. This
     * interface provides uniform, read-only access to many different kinds of
     * <code>char</code> sequences.
     * A <code>char</code> value represents a character in the <i>Basic
     * Multilingual Plane (BMP)</i> or a surrogate. Refer to <a
     * href="Character.html#unicode">Unicode Character Representation</a> for details.
     *
     * <p> This interface does not refine the general contracts of the {@link
     * java.lang.Object#equals(java.lang.Object) equals} and {@link
     * java.lang.Object#hashCode() hashCode} methods.  The result of comparing two
     * objects that implement <tt>CharSequence</tt> 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 <tt>CharSequence</tt> instances as elements in a set or as keys in
     * a map. </p>
     *
     * @author Mike McCloskey
     * @since 1.4
     * @spec JSR-51
     */

    public interface CharSequence {

        /**
         * Returns the length of this character sequence.  The length is the number
         * of 16-bit <code>char</code>s in the sequence.</p>
         *
         * @return  the number of <code>char</code>s in this sequence
         */
        int length();

        /**
         * Returns the <code>char</code> value at the specified index.  An index ranges from zero
         * to <tt>length() - 1</tt>.  The first <code>char</code> value of the sequence is at
         * index zero, the next at index one, and so on, as for array
         * indexing. </p>
         *
         * <p>If the <code>char</code> value specified by the index is a
         * <a href="{@docRoot}/java/lang/Character.html#unicode">surrogate</a>, the surrogate
         * value is returned.
         *
         * @param   index   the index of the <code>char</code> value to be returned
         *
         * @return  the specified <code>char</code> value
         *
         * @throws  IndexOutOfBoundsException
         *          if the <tt>index</tt> argument is negative or not less than
         *          <tt>length()</tt>
         */
        char charAt(int index);

        /**
         * Returns a new <code>CharSequence</code> that is a subsequence of this sequence.
         * The subsequence starts with the <code>char</code> value at the specified index and
         * ends with the <code>char</code> value at index <tt>end - 1</tt>.  The length
         * (in <code>char</code>s) of the
         * returned sequence is <tt>end - start</tt>, so if <tt>start == end</tt>
         * then an empty sequence is returned. </p>
         *
         * @param   start   the start index, inclusive
         * @param   end     the end index, exclusive
         *
         * @return  the specified subsequence
         *
         * @throws  IndexOutOfBoundsException
         *          if <tt>start</tt> or <tt>end</tt> are negative,
         *          if <tt>end</tt> is greater than <tt>length()</tt>,
         *          or if <tt>start</tt> is greater than <tt>end</tt>
         */
        CharSequence subSequence(int start, int end);

        /**
         * 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. </p>
         *
         * @return  a string consisting of exactly this sequence of characters
         */
        public String toString();

    }
     

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值