20應屆生面試題:使用string引用型別的時候,用過哪些方法?比如如何擷取一段給定字串的長度?
答:沒回答上來!(沒用過擷取字串)
string引用型別中有乙個叫做substring的方法,這個就是用來擷取字串的。
ctrl+滑鼠左鍵點進了substring方法內,檢視到了以下原始碼。
//小白的理解:
//beginindex是起始位置,endindex是末端位置
public string substring(int beginindex, int endindex)
//同理末端位置的值不能大於實際長度,超過實際長度擷取沒有意義
if (endindex > value.length)
//實際要擷取的位置,就是末端位置-起始位置的值,比如7-1=6
//6就是擷取出來的長度
int sublen = endindex - beginindex;
//當然擷取長度不能是小於零的數。
if (sublen < 0)
//這裡就是返回所擷取長度的新的字串了,
//他是按照你所輸入的始末位置所自定義出來的
//其實這裡沒咋看懂,就知道是返回實際長度的
//如果起點位置的值是0開始,末端位置的值是最大長度。那麼就返回原字串
//否則按照始末位置返回乙個新的你自己所定義出來的字串
return ((beginindex == 0) && (endindex == value.length)) ? this
: new string(value, beginindex, sublen);
}
原始碼裡為什麼一直在判斷0,應該和string這個引用型別的實現原理有關,string它是乙個char陣列的儲存結構。某種意義上也是乙個陣列。所以起始端按照陣列裡的定義,第0個元素實際上就是直觀上的第乙個元素。
(我是乙個小白,對實現原理不懂所以只能說點自己所能理解的了)
以下是我用idea處於好奇,使用**測試了一下。
這個錯誤和原始碼裡的末端值超過實際長度的異常名字一樣
String 擷取字串
string str 123abc456 int i 3 1 取字串的前i個字元 str str.substring 0,i or str str.remove i,str.length i 2 去掉字串的前i個字元 str str.remove 0,i or str str.substring i...
怎樣擷取字串長度
很多時候從資料庫裡面直接讀出來的資料直接顯示在頁面上,會造成頁面不美觀,這時候可能就會需要擷取字串了,下面獻上3種擷取字串的函式,用到的給贊,哈哈 擷取字串1 按編碼流,直接擷取 待擷取的字串 擷取長度 返回擷取後的字串 public string stringcut string sinstrin...
C 擷取字串長度方法
方法一 擷取指定長度的字串 要擷取的字串 要擷取的長度 擷取後是否加省略號 true加,false不加 public static string cutstring string str,int len,bool flag else try catch if len len if str outst...