---------- android教育訓練、java教育訓練、期待與您交流! ----------
String
1.特性
String s1 = “abc”;
s1是一個類類型變量,”abc”是一個對象
字元串最大的特點是:一旦被初始化就不會被改變==>存在于常量池中
結果:
上述代碼中的s.replace産生的是一個新字元串:現在記憶體中存在兩個字元串
如果替換的字元不存在,則傳回的原串
s1= “kk”
列印的結果肯定是kk,因為這不是“abc”發生改變,而是S1指向了新的位址”kk”
==和”equals”的差別
==
**可以用于比較基本資料類型,比較的就是基本資料類型的值是否相等。
**可以用于比較引用資料類型,比較的是對象的位址值是否相等。
equals
equals隻能用于比較引用資料類型的。
**Object提供的equals是用于比較對象位址值是否相同。
**自定義類中,如果重寫了equals方法,那麼就是按照你自己的需求來比較的。
String s1 = “abc”;
String s2 = new String(“abc”);
s1和s2的差別
s1建立了1個對象("abc”)
s2建立了2個對象(new和"abc”)
2.方法
1.擷取
1.1 字元串中的包含的字元數,也就是字元串的長度。
int length():擷取長度。
1.2 根據位置擷取位置上某個字元。
char charAt(int index):
1.3 根據字元擷取該字元在字元串中位置。
int indexOf(int ch):傳回的是ch在字元串中第一次出現的位置。
int indexOf(int ch, int fromIndex) :從fromIndex指定位置開始,擷取ch在字元串中出現的位置。
int indexOf(String str):傳回的是str在字元串中第一次出現的位置。
int indexOf(String str, int fromIndex) :從fromIndex指定位置開始,擷取str在字元串中出現的位置。
//從末尾開始,用法同上
int lastIndexOf(int ch):
int lastIndexOf(int ch, int fromIndex)
lastIndexOf(String str)
lastIndexOf(String str, int fromIndex)
2.判斷
2.1 字元串中是否包含某一個子串。
boolean contains(str):
特殊之處:indexOf(str):可以索引str第一次出現位置,如果傳回-1.表示該str不在字元串中存在。
是以,也可以用于對指定判斷是否包含。
if(str.indexOf("aa")!=-1)
而且該方法即可以判斷,有可以擷取出現的位置。
2.2 字元中是否有内容。
boolean isEmpty():原理就是判斷長度是否為0.
“”是一個對象 null是指向空
2.3 字元串是否是以指定内容開頭。
boolean startsWith(str);
2.4 字元串是否是以指定内容結尾。
boolean endsWith(str);
2.5 判斷字元串内容是否相同。複寫了Object類中的equals方法。
boolean equals(str);
2.6 判斷内容是否相同,并忽略大小寫。
boolean equalsIgnoreCase();
3.轉換
3.1 将字元數組轉成字元串。
構造函數:String(char[])
String(char[],offset,count):将字元數組中的一部分轉成字元串。
靜态方法:
static String copyValueOf(char[]);
static String copyValueOf(char[] data, int offset, int count)
static String valueOf(char[]):
3.2 将字元串轉成字元數組。
char[] toCharArray():
3.3 将位元組數組轉成字元串。
String(byte[])
String(byte[],offset,count):将位元組數組中的一部分轉成字元串。
3.4 将字元串轉成位元組數組。
byte[] getBytes():
3.5 将基本資料類型轉成字元串。
static String valueOf(int)
static String valueOf(double)
//3+"";//String.valueOf(3);
特殊:字元串和位元組數組在轉換過程中,是可以指定編碼表的。
4.替換
String replace(oldchar,newchar);
5.切割
String[] split(regex);
6.子串==>擷取字元串中的一部分。
String substring(begin);
String substring(begin,end);
7.轉換,去除空格,比較
7.1 将字元串轉成大寫或則小寫。
String toUpperCase();
String toLowerCase();
7.2 将字元串兩端的多個空格去除。
String trim();
7.3 對兩個字元串進行自然順序的比較。
int compareTo(string);
StringBuffer
1.字元串的組成原理就是通過該類實作的。
2.StringBuffer可以對字元串内容進行增删。
3.StringBuffer是一個容器。
4.很多方法與String相同。
5.StringBuffer是可變長度
==>StringBuffer與String最大的差別就是存儲在其中的字元串是可以删除的,String則是一旦生成就一直存在
可以改變其中的值(與上面的String比較)sb和sb1指向的是同一對象
StringBuffer是字元串緩沖區。是一個容器。
特點:
1,長度是可變化的。==>數組也是容器,但是長度是固定的
2,可以位元組操作多個資料類型。==>數組一次隻能操作一個資料類型
3,最終會通過toString方法變成字元串。
StringBuffer特有的方法
1,存儲。
StringBuffer append():将指定資料作為參數添加到已有資料結尾處。
StringBuffer insert(index,資料):可以将資料插入到指定index位置。
2,删除。
StringBuffer delete(start,end):删除緩沖區中的資料,包含start,不包含end。
StringBuffer deleteCharAt(index):删除指定位置的字元。
清空StringBuffer的緩存區的方法:sb.delete(0,sb.length())
3,擷取。
char charAt(int index)
int indexOf(String str)
int lastIndexOf(String str)
int length()
String substring(int start, int end)
4,修改。
StringBuffer replace(start,end,string);
void setCharAt(int index, char ch) ;
5,反轉。
StringBuffer reverse();
6,
将緩沖區中指定資料存儲到指定字元數組中。
void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)
JDK1.5 版本之後出現了StringBuilder.
StringBuffer是線程同步。
StringBuilder是線程不同步。
以後開發,建議使用StringBuilder
java選擇更新考慮的三個因素:
1,提高效率。
2,簡化書寫。
3,提高安全性。
---------- android教育訓練、java教育訓練、期待與您交流! ----------
詳情請檢視:http://edu.csdn.net/heima/