String如何擷取字串長度

2021-10-08 05:44:30 字數 1803 閱讀 2011

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...