因此,我阅读了这个答案和这个答案关于subSequence()和subString()之间的区别,并且我理解两者之间唯一的区别是返回类型。事实上,subSequence()在引擎盖下调用subString()。
此外,这个关于subSequence的文章在结尾处声明:
使用方法对没有好处,理想情况下,您应该始终使用String
substring方法。
使用subSequence()真的没有好处吗?如果是的话,为甚麽要采用呢?如果有好处,它是什么,它的已知用途是什么?
发布于 2018-08-16 07:23:59
有很多API使用CharSequences而不是Strings --当CharSequence“足够好”时就会发生这种情况,API的作者认为增加的弹性(例如,使用可变实现进行积极优化的可能性)增加了String提供的安全性的好处。
一个很好的,值得注意的例子是Android --几乎所有在小部件上定义的方法(例如,TextView),人们都会合理地期望使用String --比如setText --使用CharSequence。
因此,当然,当一个TextView只需要取一部分文本时,它将需要使用subsequence方法。
发布于 2018-08-16 07:01:46
当抽象适用于程序时,这是有好处的。例如:
public CharSequence getPrefix(CharSequence cs) {
return cs.subSequence(0, 1);
}这可以称为任何CharSequence实例(String、StringBuilder、StringBuffer等):
CharSequence cs = "John";
getPrefix("Name");
cs = new StringBuilder("James");
getPrefix(cs);正常的应用程序很少使用CharSequence接口,但这在某些情况下是适用的(特别是库)。
写这篇文章没什么意义:
CharSequence sub = stringObject.subSequence(0, 1);因为通常需要一个String-typed子字符串,但是框架可能更喜欢在其API中使用CharSequence,而不是String。
发布于 2018-08-16 07:07:48
使用subSequence()真的没有好处吗?
-> I do not see any real benefit of that method. 如果是的话,为甚麽要采用呢?
-> 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);https://stackoverflow.com/questions/51871224
复制相似问题