2011-08-28 81 views
1

說,String str =「hello world」; 爲了得到你好,我們可以使用str.subSequence(0,5)。 如果它是基於0的索引字符串,那麼爲什麼我們不寫str.subSequence(0.4)爲'o'有索引4?Java String.subsequence()方法

回答

2

請參閱該方法的javadoc。

public CharSequence subSequence(int beginIndex,int endIndex) 

返回一個新的字符序列,該序列是該序列的子序列。 形式的這種方法的完全相同的方式

str.subSequence(begin, end) 

的行爲的調用作爲調用

str.substring(begin, end) 

此方法被限定爲使得String類可以實現的CharSequence接口。在接口CharSequence中 的subSequence

參數:

指定者 的beginIndex - 起始索引(包含)。 endIndex - 結束索引,獨佔。

返回: 指定的子序列。

拋出: IndexOutOfBoundsException異常 - 如果beginIndex或endIndex的是否定的,如果endIndex大長度()時,或如果beginIndex比的startIndex

2

第一個參數值是包含性的,而第二個參數值是包含性的。

+2

按照[the javadoc](http://download.oracle.com/javase/6/docs/api/java/lang/String.html#subSequence%28int,%20int%29) –

0

它實際上完全沒有什麼可做的「0-ness」。這個API很清楚,並給出了一個例子。

子串和子序列將返回集合[n,m-1]的字符集合。或者換句話說,在串中的每個字符除了第5個字符,或者更具體地說,字符0,1,2,3,和4

這樣,你可以這樣做:

子(偏移,長度+偏移);注意你好是5個字母?

(已更正)。

+0

[n, m-1)不正確。無論是[n,m)還是[n,m-1]。另外,第二個參數不是長度。 –

+2

是的,這部分是不正確的。它允許你做的是通過使用'... substring(offset,offset + LENGTH)來提取一個字符串'LENGTH'字符'獨佔末尾索引實際上消除了很多'亂扔'代碼。 –

0

在這裏,在本methos 的subSequence()或SubStribg更大(),第二個變量不是基於零的。所以我們必須計算,直到secondvariable-1