首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >String#subSequence()有什么用途?

String#subSequence()有什么用途?
EN

Stack Overflow用户
提问于 2018-08-16 06:55:16
回答 3查看 153关注 0票数 3

因此,我阅读了这个答案这个答案关于subSequence()subString()之间的区别,并且我理解两者之间唯一的区别是返回类型。事实上,subSequence()在引擎盖下调用subString()

此外,这个关于subSequence的文章在结尾处声明:

使用方法对没有好处,理想情况下,您应该始终使用String substring方法。

使用subSequence()真的没有好处吗?如果是的话,为甚麽要采用呢?如果有好处,它是什么,它的已知用途是什么?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-08-16 07:23:59

有很多API使用CharSequences而不是Strings --当CharSequence“足够好”时就会发生这种情况,API的作者认为增加的弹性(例如,使用可变实现进行积极优化的可能性)增加了String提供的安全性的好处。

一个很好的,值得注意的例子是Android --几乎所有在小部件上定义的方法(例如,TextView),人们都会合理地期望使用String --比如setText --使用CharSequence

因此,当然,当一个TextView只需要取一部分文本时,它将需要使用subsequence方法。

票数 2
EN

Stack Overflow用户

发布于 2018-08-16 07:01:46

当抽象适用于程序时,这是有好处的。例如:

代码语言:javascript
复制
public CharSequence getPrefix(CharSequence cs) {
    return cs.subSequence(0, 1);
}

这可以称为任何CharSequence实例(StringStringBuilderStringBuffer等):

代码语言:javascript
复制
CharSequence cs = "John";
getPrefix("Name");

cs = new StringBuilder("James");
getPrefix(cs);

正常的应用程序很少使用CharSequence接口,但这在某些情况下是适用的(特别是库)。

写这篇文章没什么意义:

代码语言:javascript
复制
CharSequence sub = stringObject.subSequence(0, 1);

因为通常需要一个String-typed子字符串,但是框架可能更喜欢在其API中使用CharSequence,而不是String

票数 4
EN

Stack Overflow用户

发布于 2018-08-16 07:07:48

使用subSequence()真的没有好处吗?

代码语言:javascript
复制
-> I do not see any real benefit of that method. 

如果是的话,为甚麽要采用呢?

代码语言:javascript
复制
-> As per Java API note "This method is defined so that the  String class can implement the  CharSequence interface". As `CharSequence` has the abstract method CharSequence subSequence(int start, int end);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51871224

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档