何时在String.subString上使用String.subSequence方法?

时间:2014-07-18 03:51:45

标签: java string substring charsequence subsequence

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

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

3 个答案:

答案 0 :(得分:3)

来自API javadoc

  

调用

形式的此方法
    str.subSequence(begin, end)  
     

的行为方式与调用

完全相同
    str.substring(begin, end)

还有:

  

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

因此,在使用subSequence类型的对象而不是CharSequence

时,使用String是合适的

答案 1 :(得分:1)

您始终可以使用substringjavadoc表示两者具有相同的行为。虽然subSequence返回CharSequencesubstring返回StringString实现CharSequence,但您始终可以使用substring需要CharSequence的上下文。

根据javadoc,subSequence是因为它必须是,为了实现CharSequence中定义的方法。因为它是必需的,而不是特别因为有理由使用它,如果你有一个String,我认为没有理由使用它。

答案 2 :(得分: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();
...