我必須在使用String :: substring的以下簽名的非常舊的代碼(2005之前)中執行錯誤修正。Java String ::過去的子串更改
public String substring(int beginIndex, int endIndex)
現在它包含從beginIndex到endIndex-1的每個字符。是否有可能在過去也包含endIndex上的字符?
在它看起來像下面的代碼:
String str = line.substring(119, 120);
和它相比,2個字母串。 有沒有人有關於此的任何信息?
在Java2中,它仍然排除endIndex:https://docs.oracle.com/javase/1.5.0/docs/api/java/lang/String.html#substring(int,%20int) –
不是可能的話,我會說(請注意,Java版本的javadoc仍然可用並公開) –
我不得不假設這是編寫代碼的開發人員的錯。那些從事Java工作的人對於向後兼容性有着堅定的承諾,我不會看到他們改變這樣的事情。我一直都知道結尾索引是排他性的。 – Logan