String.subSequence()
具有以下 javadoc:
返回一个新的字符序列,它是此序列的子序列。
调用此表单方法
str.subSequence(begin, end)
行为方式与调用完全相同
str.substring(begin, end)
定义此方法是为了使 String 类可以实现 CharSequence 接口。
谁能解释一下?
原文由 124697 发布,翻译遵循 CC BY-SA 4.0 许可协议
String.subSequence()
具有以下 javadoc:
返回一个新的字符序列,它是此序列的子序列。
调用此表单方法
str.subSequence(begin, end)
行为方式与调用完全相同
str.substring(begin, end)
定义此方法是为了使 String 类可以实现 CharSequence 接口。
谁能解释一下?
原文由 124697 发布,翻译遵循 CC BY-SA 4.0 许可协议
要理解这一点,您首先需要知道的是 子串 和子 序列 之间的区别
substring 是字符串的 连续 部分或子部分
然而
子序列 是字符串或序列的一部分,可能连续也可能不连续,但元素的 顺序 保持不变
例如,假设我们有以下字符串:
str_a="hello there"
str_b="hello"
str_c="ello th"
str_d="hllo"
str_e="ho hre"
str_f="there hello"
str_b
is a substring of str_a
, str_c
is also a substring of str_a
but str_d
is not a substring str_a
因为这个子串不是 连续 的。
现在所有子串都是子序列,因为顺序得到了维护。
str_d
is a subsequence of str_a
, str_e
is also a subsequence of str_a
however str_f
is not a subsequence的 str_a
因为在这种情况下 订单 没有得到维护。
现在对于 java,javadoc 中没有关于这些方法的适当说明。
原文由 Nishchay 发布,翻译遵循 CC BY-SA 4.0 许可协议
15 回答8.4k 阅读
8 回答6.3k 阅读
1 回答4.1k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答3.1k 阅读
2 回答3.8k 阅读
1 回答2.1k 阅读✓ 已解决
使用
str.subSequence(begin, end)
返回一个 CharSequence ,它是表示为字符序列的字符串的只读形式。例如:它是只读的,你不能在
chars
中更改CharSequence
而不实例化CharSequence
.如果必须使用
str.subSequence(begin, end)
,则可以将结果转换为String
:并使用所有正常的
String
运算符,如subSequence += " World";