【发布时间】:2014-12-25 04:48:26
【问题描述】:
为什么子字符串以起始参数为索引,第二个参数为从头开始的长度?
换句话说
1 2 3 | 4 5 <=== Length from beginning
A B C D E
0 | 1 2 3 4 <=== Index
如果我希望 substring() 返回 BC 我必须这样做 "ABCDE".substring(1,3);
为什么会这样?
编辑:使结束索引独占有什么好处?
【问题讨论】:
-
我相信它是一个开始索引和一个结束索引?
-
我在问为什么......当被问到这个问题时......我不想告诉任何人“这就是它的完成方式。”
-
“使结束索引独占有什么好处?”这让我们以
"ABCDE".substring(start,start+length);的方式使用子字符串。看看你的例子:要获得BC,你可以尝试使用像int start = 1; int length = 2这样的变量,通过使用提到的公式将与"ABCDE".substring(1,3);相同。 -
我认为在两个索引之间进行选择无论如何都是愚蠢的。拥有 start 索引(包括)和 length(不是结束索引)更加直观。
-
给数学家带来痛苦