我知道subSequence返回一个只读的charSequence。此外,String类实现CharSequence。 subString返回一个String。
但是,在子序列和子字符串中,何时以及哪个更喜欢
答案 0 :(得分:3)
来自API javadoc:
调用
形式的此方法str.subSequence(begin, end)
的行为方式与调用
完全相同str.substring(begin, end)
还有:
定义此方法,以便String类可以实现CharSequence接口。
因此,在使用subSequence
类型的对象而不是CharSequence
String
是合适的
答案 1 :(得分:1)
您始终可以使用substring
。 javadoc表示两者具有相同的行为。虽然subSequence
返回CharSequence
而substring
返回String
,String
实现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();
...