我不明白为什么 Java 的 [String.substring() 方法]( http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html#substring(int,%20int% 29)以它的方式指定。我不能告诉它从编号位置开始并返回指定数量的字符;我必须自己计算结束位置。如果我指定结束位置超出字符串,而不是只为我返回字符串的其余部分,Java 抛出一个异常。
我习惯于 substring()(或 substr())采用两个参数的语言:起始位置和长度。这在客观上是否比 Java 做的更好,如果是,你能证明吗?您所见过的 substring() 的最佳语言规范是什么?什么时候让一种语言以不同的方式做事是个好主意?Java 抛出的 IndexOutOfBoundsException 是不是一个好的设计理念?这一切都归结为个人喜好吗?