【发布时间】:2012-12-08 21:01:28
【问题描述】:
可能重复:
why from index is inclusive but end index is exclusive?
substring() 方法 => String substring(int beginIndex, int endIndex)
说明:
返回一个新字符串,它是该字符串的子字符串。首先 整数参数指定第一个字符的索引。这 第二个整数参数是最后一个字符的索引 - 1。
看看下面的代码:
String anotherPalindrome = "Niagara. O roar again!";
String roar = anotherPalindrome.substring(11, 15);
输出:roar
现在,如果 JVM 没有将 int endIndex 减一,我们可以直接使用 substring(11,14),这样不是更方便且更不容易出错(人为方面)吗?如果你没有仔细阅读描述,当你认为endIndex 只是正常的索引时,你可能只是挠了半个小时(就像我一样)。 Java 语言的创造者为什么要把它减一?
【问题讨论】:
-
另外,substring(int beginIndex, int length) 会更有意义。你知道你要提取多少个字符!!!
-
“开始包容,结束排他”几十年来一直是类 C 语言的传统。