A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© youc3576 黑马帝   /  2011-9-18 10:22  /  6847 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

今天截取字符串的时候,无意中发现了subSequence,并且不小心用上了,呵呵,发现同样能和substring一样截取,效果一模一样。我就好奇地翻看了一下源码:

public CharSequence subSequence(int beginIndex, int endIndex) {
          return this.substring(beginIndex, endIndex);
}

根据JDK的文档,String.subSequence只是为了实现CharSequence接口上的同名方法而放在那里的,其行为与String.substring一样。

区别是:substring和subSequence的返回类型不一样,substring返回的是String,subSequence返回的是实现了CharSequence接口的类,也就是说使用subSequence得到的结果,只能使用CharSequence接口中的方法。不过在String类中已经重写了subSequence,调用subSequence方法,可以直接下转为String对象。
好东西就和大家分享~~~~

评分

参与人数 1技术分 +1 收起 理由
admin + 1 替大家谢谢你的分享!

查看全部评分

3 个回复

倒序浏览
黑马网友  发表于 2011-9-18 11:08:16
沙发

回复 楼主 的帖子

public String substring(int beginIndex,
                        int endIndex)返回一个新字符串,它是此字符串的一个子字符串。该子字符串从指定的 beginIndex 处开始,直到索引 endIndex - 1 处的字符。因此,该子字符串的长度为 endIndex-beginIndex。
示例:

"hamburger".substring(4, 8) returns "urge"
"smiles".substring(1, 5) returns "mile"

参数:
beginIndex - 起始索引(包括)。
endIndex - 结束索引(不包括)。
返回:
指定的子字符串。


public CharSequence subSequence(int beginIndex,
                                int endIndex)返回一个新的字符序列,它是此序列的一个子序列。
此方法这种形式的调用:

str.subSequence(begin, end)与以下调用的行为完全相同:
str.substring(begin, end)定义此方法使 String 类能够实现 CharSequence 接口。


指定者:
接口 CharSequence 中的 subSequence
参数:
beginIndex - 起始索引(包括)。
endIndex - 结束索引(不包括)。
返回:
指定子序列。
回复 使用道具 举报
黑马网友  发表于 2011-9-18 11:09:51
藤椅
有种鸡肋的感觉,多此一举了
回复 使用道具 举报
黑马网友  发表于 2011-9-18 13:11:58
板凳
。。。无语。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马