Java String::substring 过去的变化

Java String::substring changes in the past

我必须在非常旧的代码(2005 年之前)中修复错误,其中使用了 String::substring 的以下签名。

public String substring(int beginIndex, int endIndex)

现在它包含从 beginIndex 到 endIndex-1 的每个字符。有没有可能过去它也包含endIndex上的字符?

代码如下所示:

String str = line.substring(119,  120);

并将其与 2 个字母的字符串进行比较。 有人知道这方面的信息吗?

String#substring(int beginIndex, int endIndex) 方法的签名或工作方式从未改变。

我从 2003 年左右开始从事 Java 的工作,我知道它一直都是一样的。您可以验证这些年来您拥有代码 运行 的 Java 版本,并从 Oracle 的档案中查看相应的文档,您可以从中获得一直追溯到 Java 1.1 的文档:

http://www.oracle.com/technetwork/java/archive-139210.html

看看。


希望对您有所帮助!

似乎substring方法从一开始就做了同样的事情。这里可以看到substring javadoc for jdk 1.0.