------- android教育訓練、java教育訓練、期待與您交流! ----------
String類
字元串是一個特殊的對象。
字元串一旦初始化就不可以被改變。
String s1 = "abc"; s1是一個類類型變量, "abc"是一個對象。
String s2 = new String("abc");
s1和s2有什麼差別?
s1在記憶體中有一個對象。
s2在記憶體中有兩個對象。
String類适用于描述字元串事物。
那麼它就提供了多個方法對字元串進行操作。
1,擷取。
字元串中的包含的字元數,也就是字元串的長度。
int length():擷取長度。
根據位置擷取位置上某個字元。
char charAt(int index):
根據字元擷取該字元在字元串中位置。
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) :反向擷取ch在字元串中第一次出現的位置。
2,判斷。
字元串中是否包含某一個子串。
boolean contains(str):
特殊之處:indexOf(str):可以索引str第一次出現位置,如果傳回-1.表示該str不在字元串中存在。
是以,也可以用于對指定判斷是否包含。
if(str.indexOf("aa")!=-1)
而且該方法即可以判斷,有可以擷取出現的位置。
字元中是否有内容。
boolean isEmpty(): 原理就是判斷長度是否為0.
字元串是否是以指定内容開頭。
boolean startsWith(str);
字元串是否是以指定内容結尾。
boolean endsWith(str);
判斷字元串内容是否相同。複寫了Object類中的equals方法。
boolean equals(str);
判斷内容是否相同,并忽略大小寫。
boolean equalsIgnoreCase();
3,轉換。
将字元數組轉成字元串。
構造函數:String(char[])
String(char[],offset,count):将字元數組中的一部分轉成字元串。
靜态方法:
static String copyValueOf(char[]);
static String copyValueOf(char[] data, int offset, int count)
static String valueOf(char[]):
将字元串轉成字元數組。
char[] toCharArray():
将位元組數組轉成字元串。
String(byte[])
String(byte[],offset,count):将位元組數組中的一部分轉成字元串。
将字元串轉成位元組數組。
byte[] getBytes():
将基本資料類型轉成字元串。
static String valueOf(int)
static String valueOf(double)
4,替換
String replace(oldchar,newchar);
5,切割
String[] split(regex);
6,子串。擷取字元串中的一部分。
String substring(begin);
String substring(begin,end);包含頭不包含尾
7,轉換,去除空格,比較。
将字元串轉成大寫或則小寫。
String toUpperCase();
String toLowerCase();
将字元串兩端的多個空格去除。
String trim();
對兩個字元串進行自然順序的比較。
int compareTo(string);
練習1:模拟一個trim方法,去除字元串兩端的空格。
練習2:将一個字元串進行反轉。将字元串中指定部分進行反轉,"abcdefg";abfedcg
練習3:擷取一個字元串在另一個字元串中出現的次數。
練習4:擷取兩個字元串中最大相同子串。
StringBuffer
StringBuffer是字元串緩沖區。
特點:
1,長度是可變化的。
2,可以位元組操作多個資料類型。
3,最終會通過toString方法變成字元串。
4,StringBuffer可以對字元串内容進行增删。
5,StringBuffer是一個容器。
StringBuffer特有方法
1,存儲。
StringBuffer append():将指定資料作為參數添加到已有資料結尾處。
StringBuffer insert(index,資料):可以将資料插入到指定index位置。
2,删除。
StringBuffer delete(start,end):删除緩沖區中的資料,包含start,不包含end。
StringBuffer deleteCharAt(index):删除指定位置的字元。
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
更新三個因素:
1,提高效率。
2,簡化書寫。
3,提高安全性。
基本資料類型對象包裝類
byte Byte
short short
int Integer
long Long
boolean Boolean
float Float
double Double
char Character
基本資料類型對象包裝類的最常見作用,
就是用于基本資料類型和字元串類型之間做轉換
基本資料類型轉成字元串。
基本資料類型+""
基本資料類型.toString(基本資料類型值);
如: Integer.toString(34);//将34整數變成"34";
字元串轉成基本資料類型。
xxx a = Xxx.parseXxx(String);
int a = Integer.parseInt("123");
double b = Double.parseDouble("12.23");
boolean b = Boolean.parseBoolean("true");
Integer i = new Integer("123");
int num = i.intValue();
十進制轉成其他進制。
toBinaryString();
toHexString();
toOctalString();
其他進制轉成十進制。
parseInt(string,radix);
基本資料類型對象包裝類新特性
JDK1.5以後,簡化了定義方式。
Integer x = new Integer(4);可以直接寫成
Integer x = 4;//自動裝箱。
x = x + 5;//自動拆箱。通過intValue方法。
需要注意:
在使用時,Integer x = null;上面的代碼就會出現NullPointerException。
Integer a =127;
Integer b = 127;
System.out.println("a==b:"+(a==b));
//結果為true,因為a和b指向了同一個Integer對象。
//因為當數值在byte範圍内容,對于新特性,如果該數值已經存在,不會開辟新空間。
-------android教育訓練、java教育訓練、期待與您交流! ----------