如果標題不清楚,我很抱歉。字符串類中的子字符串方法達到索引它不應該
現在,串指數從0開始。因此,例如:
Index 0 1 2 3 4
String H E L L O
在這種情況下,最後指數是4
如果我想嘗試做這樣的事情:
System.out.println("hello".charAt(5));
它會拋出'索引超出界限例外',因爲它應該。
但是,如果我嘗試運行下面的代碼:
System.out.println("hello".substring(5));
它跑了!我寫了類似的代碼,後來注意到了這一點,但無法弄清楚。
最終,問題是我們怎麼可能達到這個指數呢?它可以讓我們寫:
stringObj.substring(stringObj.length());
,它看起來不是很安全,因爲stringObj.length()返回我們一個整數,它比過去的指標是什麼人了。
是故意製造的嗎?這是否有目的?如果是這樣,這是什麼目的,它帶來的好處是什麼?
我們不會在「hello」.substring(5)上得到異常,但API解釋我們得到「空」.substring(9)返回「」(一個空字符串)http://docs.oracle.com/ JavaSE的/ 7 /文檔/ API /爪哇/郎/字符串。html#substring(int) – bakki
是的,我也檢查了文檔。但我不明白,它說beginIndex是包容性的。他們是如何實施這種方法的? – Haggra
'它說beginIndex是包容性的 - 當然它是包容性的。你如何得到索引爲0的第一個字符?你會指定-1嗎?這沒有意義。將substring()方法與indexof()方法結合使用也很容易。您可以使用indexof()獲取索引,使用substring()獲取索引中的所有字符。 – camickr