【问题标题】:When to use String.subSequence method over String.subString?何时在 String.subString 上使用 String.subSequence 方法?
【发布时间】:2014-09-09 02:47:53
【问题描述】:

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

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

【问题讨论】:

    标签: java string substring charsequence subsequence


    【解决方案1】:

    来自API javadoc

    调用该方法的形式

        str.subSequence(begin, end)  
    

    行为方式与调用完全相同

        str.substring(begin, end)
    

    还有:

    定义这个方法是为了让String类可以实现CharSequence接口。

    所以,当您使用CharSequence 类型的对象而不是String 时,使用subSequence 是合适的

    【讨论】:

      【解决方案2】:

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

      根据 javadoc,subSequence 之所以存在是因为它必须存在,以便实现CharSequence 中定义的方法。因为它的存在是因为它是必需的,而不是特别是因为有使用它的理由,所以如果你有 String,我看不出有任何使用它的理由。

      【讨论】:

        【解决方案3】:

        这是来自java.util.regex.Pattern.split 的 sn-p,如果将 String 作为输入 arg 传递,则将使用 String.subSequence

            public String[] split(CharSequence input, int limit) {
        ...
                        String match = input.subSequence(index, m.start()).toString();
        ...
        

        【讨论】:

          猜你喜欢
          • 2013-03-08
          • 2015-08-02
          • 2019-11-15
          • 2013-09-26
          • 2012-12-19
          • 2021-07-17
          • 2013-08-30
          • 1970-01-01
          • 2013-11-20
          相关资源
          最近更新 更多