您的位置:首页 > 产品设计 > UI/UE

Java字符序列类CharSequence基本详解

2018-02-04 16:50 513 查看
CharSequence类是java.lang包下的一个接口,此接口对多种不同的对char访问的统一接口,像String、StringBuffer、StringBuilder类都是CharSequence的子接口;

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

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


CharSequence b = "s";


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();

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: