substring方法用於對字串的擷取,在資料的傳遞過程中使用的十分普遍,但消耗的效能較大,建議能不用盡量不用。
public string substring(int beginindex)
int sublen = value.length - beginindex;
if (sublen < 0)
return (beginindex == 0) ? this : new string(value, beginindex, sublen);//當傳入的開始下標符合且不為0時,新建乙個string,注意這個string的值並沒有變化,只是改變了偏移量
}public string substring(int beginindex, int endindex)
if (endindex > value.length)
int sublen = endindex - beginindex;
if (sublen < 0)
return ((beginindex == 0) && (endindex == value.length)) ? this
: new string(value, beginindex, sublen);//與上面的方法類似,沒有改變string的value屬性,只是而是
改變了偏移量和count長度。
}
public string replace(char oldchar, char newchar)
}if (i < len)
while (i < len)
return new string(buf, true);}}
return this;
}
static int indexof(char source, int sourceoffset, int sourcecount,
char target, int targetoffset, int targetcount,
int fromindex)
if (fromindex < 0)
if (targetcount == 0)
char first = target[targetoffset];
int max = sourceoffset + (sourcecount - targetcount);//先設定乙個最大的源字串的下標,可以節省迴圈次數
for (int i = sourceoffset + fromindex; i <= max; i++)
if (i <= max) }}
return -1;
}
public string split(string regex, int limit) else
}if (off == 0)
return new string;//若字串中不存在擷取符,則直接返回原字串
// add remaining segment
if (!limited || list.size() < limit)
list.add(substring(off, value.length));
// construct result
int resultsize = list.size();
if (limit == 0)
while (resultsize > 0 && list.get(resultsize - 1).length() == 0)//將list中的空位去除,並返回最後乙個值的下標
resultsize--;
string result = new string[resultsize];
return list.sublist(0, resultsize).toarray(result);//擷取list的中所有有效地值,將之放入string陣列後返回中
}return pattern.compile(regex).split(this, limit);
}
java原始碼分析
在往佇列中插入資料由下面幾個函式,他們的區別就是對佇列滿的情況處理不同 put 一直等待著 offer 無時間 如果空了直接返回false offer 有時間 等待指定的時間,在指定時間內如果空了,那麼插入,負責返回false add 丟擲乙個illegalstateexception異常 首先來看...
《Java原始碼分析》 LinkedHashMap
public class linkedhashmap extends hashmap implements map從結構可以看出,linkedhashmap繼承hashmap並實現了map介面。下面幾個是linkedhashmap的建構函式,每個建構函式都是直接呼叫父類hashmap的建構函式來完成...
uboot原始碼分析(3)
正式開始了第二階段 relocate部分的 負責把u boot stage2的 從flash儲存器載入到記憶體,如下 163 ifndef config skip relocate uboot 164relocate 165 adr r0,start 獲取當前 存放位址 00000000 166 l...