一、
string字串補充
對於string:獲取(length()、chatat()、indexof()-有三種、lastdexof())、判斷(contains、isempty、 startwith()、endwith()、equals()、 equalsignore())、替換(replace)、轉換(trim、touppercase、tolowercase、valueof()、tochararray)、子串(獲取一部分 substring)、切割(split())
1、int compareto(string anotherstring)
相等關係返回0;不相等時,從兩個字串第0個字元開始比較,返回第乙個不相等的字元差,另一種情況,較長字串的前面部分恰巧是較短的字串,返回它們的長度差。
eg:public
static
void main(string args) {
string s1 = new string("abcdefghijklmn");
string s2 = new string("abcdefghij");
string s3 = new string("abcdefghijalmn");
//返回 s2, 和s3的長度差
system.out.println("s1.compareto(s2):" + s1.compareto(s2));
//返回「k」和「a」的差
system.out.println("s1.compareto(s3):" + s1.compareto(s3));
2、indexof是第乙個與其匹配的字元、
lastdexof
是最後乙個與其匹配的字元,這裡就強調一下。總是混! 二、
string, stringbuffer, stringbuilder
1. string 類
string的值是不可變的,這就導致每次對string的操作都會生成新的string物件,不僅效率低下,而且大量浪費有限的記憶體空間。
string a = "a"; //假設a指向位址0x0001
a = "b";//重新賦值後a指向位址0x0002,但0x0001位址中儲存的"a"依舊存在,但已經不再是a所指向的,a 已經指向了其它位址。
因此string的操作都是改變賦值位址而不是改變值操作。
2. stringbuffer是可變類,和執行緒安全的字串操作類,任何對它指向的字串的操作都不會產生新的物件。 每個stringbuffer物件都有一定的緩衝區容量,當字串大小沒有超過容量時,不會分配新的容量,當字串大小超過容量時,會自動增加容量。
stringbuffer buf=new stringbuffer(); //分配長16位元組的字元緩衝區
stringbuffer buf=new stringbuffer(512); //分配長512位元組的字元緩衝區
stringbuffer buf=new stringbuffer("this is a test")//在緩衝區中存放了字串,並在後面預留了16位元組的空緩衝區。
3.stringbuffer
stringbuffer和stringbuilder類功能基本相似,主要區別在於stringbuffer類的方法是多執行緒、安全的,而stringbuilder不是執行緒安全的,相比而言,stringbuilder類會略微快一點。對於經常要改變值的字串應該使用stringbuffer和stringbuilder類。
4.執行緒安全
stringbuffer 執行緒安全
stringbuilder 執行緒不安全
5.速度
一般情況下,速度從快到慢:stringbuilder>stringbuffer>string,這種比較是相對的,不是絕對的。
6.總結
(1).如果要操作少量的資料用 = string
(2).單執行緒操作字串緩衝區 下操作大量資料 = stringbuilder
(3).多執行緒操作字串緩衝區 下操作大量資料 = stringbuffer
字元char 補充
char ch1 a char ch2 65 可直接編碼賦值 ch2 字元型可以參與算術運算 本質上是將字元看成對應asscii碼數字參與運算 ch2 2 ch2 a ch2 1 關係運算子 表達範圍 3 int num 57 3 浮點數 判定補充 是否相同 做差 看差的絕對值 float x fl...
補充 字元編碼
unicode中文和英文都是佔兩個位元組 ascii只能存英文本母和特殊字元,佔乙個位元組 所以,用unicode存英文本元就會比ascii多一倍的儲存,因此就出現了乙個unicode擴充套件集utf 8,所有的英文本元 按ascii儲存,佔乙個位元組,而中文變成3個位元組 例子 將utf 8的編碼...
String 字元處理
查詢字串 indexof indexof start,end 接收兩個引數,返回某個指定的子字串在字串中地一次出現的位置,如果沒有就返回 1,它預設是從下標0開始查咋的。let str hello world let str1 str.indexof o let str2 str.indexof w...