java基礎———第十二天
String類
特點:
字串是一個特殊的物件,該物件一旦被初始化,就不可以改變。
構造方法:
String s = new String();
String s1 = "";
以上建立為同一物件。
A:直接給字串物件賦值
String s = "Hello";
B:通過構造方法傳遞位元組陣列引數
byte[] b = {97,98,99,100,101};
String s = new String(b);//把位元組陣列轉換成字串
String s = new String(b,1,3); //從1開始,取得3個
C:通過構造方法傳遞字元陣列引數
char[] ch = {'h','e','l','l','o'};
String s = new String(ch);//變成hello的字串
String s = new String(ch,1,3);
String物件具備的常用功能:
A:判斷
**equals :判斷字串的內容是否相同,內容要一模一樣
**equalsIgnoreCase: 判斷字串的內容是否相同,不區分大小寫
**startsWith: 是否以指定的字串開頭
**endsWith: 是否以指定的字串結尾
**contains:判斷某個字串是否包含指定的字串
**isEmpty: 判斷字串是否為空
B:獲取
**charAt :獲取指定索引處的字元
**length :獲取字串的長度
***注意: 陣列length屬性,字串有length方法.
**indexOf: 獲取指定字元/字串第一次出現的索引
indexOf(char/String,fromIndex) :從指定位置開始 獲取指定字元/字
符串第一次出現的索引
lastIndexOf:反向索引…………
lastIndexOf(char/String,formIndex)
**substring(int index) :從指定位置到末尾擷取字串.
subString(int beginIndex,int endIndex): 從指定開始位置,到指定的
末尾位置,擷取字串.
C:轉換
**getBytes: 把字串轉換成一個位元組陣列
**toCharArray: 把字串轉成一個字元陣列 重點
**static String copyValueOf(char[] data)
返回指定陣列中表示該字元序列的 String。
static String copyValueOf(char[] data, int offset, int count)
返回指定陣列中表示該字元序列的 String。
**把基本資料型別轉成字串 次重點
int x = 3;
如何得到字串呢: x+""
現在怎麼寫? String.valueOf(x)
**toUpperCase 把字串中所有字串轉成大寫
**toLowerCase 把字串中所有字串轉成小寫
**concat 字串的連線
D:其他
**替換
replace(char oldChar,char newChar)
replace(String oldString,String newString)
**切割
String[] split(String str)//括號裡是條件,
**去除字串兩端的空格
String trim()
**按照字典(自然,a-z)順序對字串進行比較.
compareTo
StringBuffer類
定義:
執行緒安全的可變字元序列。一個類似於
String
的字串緩衝區,但不能修改。雖然在任意時間點上它都包含某種特定的字元序列,但通過某些方法呼叫可以改變該序列的長度和內容。(其實它就是一個容器)
特點:
1,而且長度是可以變化的。
2,可以直接操作多個數據型別。
3,最終會通過toString方法變成字串
(CURD) C creat U update R read D delete
1,儲存;
StringBuffer append();將指定的資料作為引數,新增到已有資料的結尾處.
StringBuffer insert(index,資料);將資料插入指定位置上
2,刪除;
StringBuffer delete(start,end);包含start,不包含end
StringBuffer deleteCharAt(intdex);刪除指定位置的字元
3,獲取;
char charAt(index);獲取一個
int indexOf(String str);根據字串獲取位置
int lastIndexOf(String str);根據字串從後面獲取位置
int length();//獲取長度
String substring(int start);獲取子串
String substring(int start,int end);獲取子串,不包含尾巴
4,修改;
StringBuffer replace(int start, int end, String str)//修改:頭,尾巴,字串
void setCharAt(int index, char ch)//注意嘍,沒有返回型別
5,反轉;
StringBuffer reverse()//反轉
6,將緩衝區中的指定資料儲存到指定字元陣列中
void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)
StringBuilder類
在JDK1.5版本之後出現了StringBuilder
不同之處:
StringBuffer是執行緒同步
StringBuilder是執行緒不同步的
(以後遇到程式的時候,遇到多執行緒的時候遇到StringBuffer)
升級三個因素:
提高效率、簡化書寫、提高安全性。