Java原始碼閱讀之String(2)

2021-08-11 16:20:24 字數 2983 閱讀 1994

這一篇部落格用於記錄string類的部分方法。

//獲取字串長度,返回的是value陣列的長度

public

intlength()

//根據value陣列長度判斷字串是否為空

public boolean isempty()

//根據index返回所在位置的字元

public

char

charat(int index)

return

value[index];

}//返回指定位置的unicode碼點,如果(index-1)處的char值處於低位範

//圍內,(index-2)不是負數,並且(index-2)處的char值處於高位

//範圍內,則補充**點的值被返回。 如果index-1中的char值是

//不成對的低位,則返回碼值。

public

intcodepointbefore(int index)

return character.codepointbeforeimpl(value, index, 0);

}//返回此string物件的指定範圍內的unicode碼點。 範圍從指定的

//beginindex開始,並擴充套件到索引endindex-1處的char。並且計算是否為高

//低位合併的unicode碼點

public

intcodepointcount(int beginindex, int endindex)

return character.codepointcountimpl(value, beginindex,

endindex - beginindex);

}//返回此 string 中從給定的 index 處偏移 codepointoffset 個**點

//的索引。文字範圍內由 index 和 codepointoffset 給定的未配對**項

//各計為乙個**點。

public

intoffsetbycodepoints(int index, int

codepointoffset)

return character.offsetbycodepointsimpl(value, 0,

value.length,index, codepointoffset);

}//從dstbegin開始,將這個字串中的字元複製到dst中。

//此方法不執行任何範圍檢查。

void getchars(char dst, int dstbegin)

//將此字串中的字元複製到目標字元陣列中。

//複製範圍為srcbegin到srcend-1,複製到從索引dstbegin開始到索引處結

//束的dst子陣列中

public

void

getchars(int srcbegin, int srcend, char dst,

int dstbegin)

if (srcend > value.length)

if (srcbegin > srcend)

system.arraycopy(value, srcbegin, dst, dstbegin, srcend

- srcbegin);

}//根據所給的編碼方式返回byte位元組序列,給定編碼方式為編碼名稱

public

byte getbytes(string charsetname)

throws unsupportedencodingexception

//根據所給的編碼方式返回byte位元組序列,給定編碼方式為編碼物件

public

byte getbytes(charset charset)

//根據預設的編碼方式返回byte位元組序列,預設編碼方式為"iso-8859-1"

public

byte getbytes()

//判斷當前string物件與anobject物件是否相等

public boolean equals(object anobject)

//如果不指向同乙個物件,需要判斷兩者內容是否相等,在判斷兩者內容

//相等之前需要確定anobject也是乙個string物件

if (anobject instanceof string)

return

true;}}

return

false;

}//判斷當前物件和stringbuffer 的物件sb內容是否相同

public boolean contentequals(stringbuffer sb)

//判斷當前物件的內容和實現了charsequence 介面的cs物件的

//內容是否相同

public boolean contentequals(charsequence cs)

} else

}//如果是string物件 直接呼叫equals方法判斷

if (cs instanceof string)

//如果是是乙個通用的charsequence物件,直接進行判斷

char v1 = value;

int n = v1.length;

if (n != cs.length())

for (int i = 0; i < n; i++)

}return

true;

}//非執行緒安全方式判斷sb物件和當前物件的內容是否相等

private boolean nonsynccontentequals(abstractstringbuilder sb)

for (int i = 0; i < n; i++)

}return

true;

}//忽略大小寫判斷當前物件和anotherstring的值是否相等

public boolean equalsignorecase(string anotherstring)

Java原始碼閱讀之Vector

vector與arraylist區別 protected object elementdata protected int elementcount protected int capacityincrement private static final int max array size int...

原始碼閱讀 Glide原始碼閱讀之with方法(一)

前言 本篇基於4.8.0版本 原始碼閱讀 glide原始碼閱讀之with方法 一 原始碼閱讀 glide原始碼閱讀之load方法 二 原始碼閱讀 glide原始碼閱讀之into方法 三 大多數情況下,我們使用glide 就一句 但是這一句 裡面蘊含著成噸的 with方法有以下幾個過載方法 publi...

原始碼閱讀 Glide原始碼閱讀之load方法(二)

原始碼閱讀 glide原始碼閱讀之load方法 二 原始碼閱讀 glide原始碼閱讀之into方法 三 首先,load方法有以下幾個過載方法 public requestbuilder load nullable bitmap bitmap public requestbuilder load nu...