3

我知道 subSequence 返回一个只读的 charSequence。此外,String 类实现了 CharSequence。subString 返回一个字符串。

但是,在子序列和子字符串中,何时以及更喜欢哪一个

4

3 回答 3

3

API javadoc

调用表单的这个方法

    str.subSequence(begin, end)  

行为方式与调用完全相同

    str.substring(begin, end)

并且:

定义此方法以便 String 类可以实现 CharSequence 接口。

因此,subSequence当您使用类型的对象CharSequence而不是String

于 2014-07-18T03:59:28.900 回答
1

您可以随时使用substring. javadoc说两者具有相同的行为。尽管subSequence返回 aCharSequencesubstring返回 a String,但String实现了CharSequence,因此您始终可以substring在需要 a 的上下文中CharSequence使用。

根据 javadoc,subSequence是否存在是因为它必须存在,才能实现CharSequence. 因为它在那里是因为它是必需的,而不是特别因为有使用它的理由,所以如果你有一个String.

于 2014-07-18T04:10:06.293 回答
1

java.util.regex.Pattern.split如果将 String 作为输入 arg 传递,String.subSequence则将使用以下代码段:

    public String[] split(CharSequence input, int limit) {
...
                String match = input.subSequence(index, m.start()).toString();
...
于 2014-07-18T04:21:40.640 回答