看string的原始碼
看到
public string substring(int beginindex, int endindex)
if (endindex > count)
if (beginindex > endindex)
return ((beginindex == 0) && (endindex == count)) ? this :
new string(offset + beginindex, endindex - beginindex, value);
}
當時就想到2個問題,第乙個是endindex可以等於count,因為他的判定條件是index > count,第二個就是他return的是
new string(offset + beginindex, endindex - beginindex, value)
再看看這個構造方法
string(int offset, int count, char value)
也就是char value是共享的,只是調整offset和count的值來完成擷取的。
不明白這樣做的目的是什麼,有什麼好處,新截出來的字串不是有浪費空間的嫌疑?
然後查閱網上其他人的關於substring的文章
參考部落格:
發現這個substring方法還是要小心點用
slice,substr和substring的區別
首先,他們都接收兩個引數,slice和substring接收的是起始位置和結束位置 不包括結束位置 而substr接收的則是起始位置和所要返回的字串長度。直接看下面例子 1 var test hello world 2 3 alert test.slice 4,7 o w 4 alert test....
slice,substr和substring的區別
首先,他們都接收兩個引數,slice和substring接收的是起始位置和結束位置 不包括結束位置 而substr接收的則是起始位置和所要返回的字串長度。直接看下面例子 var test hello world alert test.slice 4,7 o w alert test.substrin...
slice,substr和substring的區別
首先,他們都接收兩個引數,slice和substring接收的是起始位置和結束位置 不包括結束位置 而substr接收的則是起始位置和所要返回的字串長度。直接看下面例子 1var test hello world 23alert test.slice 4,7 o w 4alert test.subs...