String.subString和String.subSequence有什么区别

问题描述

using str.subSequence(begin, end)返回一个CharSequence,它是字符串的只读形式,表示为一个char序列。例如:

String string = "Hello";
CharSequence subSequence = string.subSequence(0, 5);

从某种意义上来说,它是只读的,您必须charsCharSequence不实例化a的新实例的情况下无法在中更改CharSequence

如果必须使用str.subSequence(begin, end),可以将结果转换为String

String string = "Hello";
String subSequence = (String) string.subSequence(0, 5);

并使用所有常规String运算符subSequence += " World";

解决方法

String.subSequence() 具有以下javadoc:

返回一个新的字符序列,该序列是该序列的子序列。

这种形式的方法的调用

str.subSequence(begin,end)

行为与调用完全相同

str.substring(begin,end)

定义此方法是为了使String类可以实现CharSequence接口。

谁能解释?