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)
升級三個因素:
提高效率、簡化書寫、提高安全性。