Java基础(三十四)String、StringBuffer类和数据缓冲区Buffer类
一、String類
1.創(chuàng)建字符串對象
創(chuàng)建字符串對象有兩種方法:直接用“=”或者使用“new String(...)”
String aStr = "TMZ";String bStr = new String("TMZ");String nullStr = "";String nullStr_1 = new String();String nullStr_2 = new String("");2.連接字符串
使用“+”運算符可以連接字符串。字符串可以和任意類型的數(shù)據(jù)進行字符串連接操作,若該數(shù)據(jù)為基本類型,則會自動轉換為字符串;若為引用類型,則會自動調用所引對象的toString()方法獲得一個字符串,然后再進行字符串的連接操作。
System.out.println("TMZ" + 1996); //TMZ1996System.out.println("10" + 7.5F); //107.5System.out.println("TMZ" + true); //TMZtrueSystem.out.println("TMZ" + "SJY"); //TMZSJYSystem.out.println("SJY" + "TMZ"); //SJYTMZ在判斷是字符串連接符還是加法運算符時,按照先左后右的順序,根據(jù)運算符兩邊的類型來決定是進行加法運算還是進行字符串連接。
System.out.println("TMZ" + 1996 + 2.2); //TMZ19962.2System.out.println(1996 + 2.2 + "TMZ"); //1998.2TMZ3.字符串操作
(1)比較字符串
equals():區(qū)分字母大小寫 equalIgnoreCase():不區(qū)分大小寫 startWith(String prefix):判斷字符串是否以prefix字符串開始 endsWith(String prefix):判斷字符串是否以prefix字符串結束 startWith(String prefix, int offset):判斷字符串是否從第offset起始位置以prefix字符串開始 compareTo(): 比較兩個字符串,大于返回一個正數(shù),小于返回一個負數(shù),相等返回0(2)獲取字符串的長度:str.length()
(3)字符串的大小寫轉換:str.toLowerCase();???? str.toUpperCase();
(4)查找字符串
(1)indexOf(int ch):用于獲取指定字符在原字符串中第一次出現(xiàn)的索引。 (2)lastIndexOf (int ch):用于獲取指定字符在原字符串中最后一次出現(xiàn)的索引。 (3)indexOf(String str):用于獲取指定字符串在原字符串中第一次出現(xiàn)的索引。 (4)lastIndexOf(String str):用于獲取指定字符在原字符串中最后一次出現(xiàn)的索引。 (5)indexOf(int ch, int startIndex):用于獲取指定字符在原字符串中指定索引位置開始第一次出現(xiàn)的索引。 (6)lastIndexOf (int ch, int startIndex):用于獲取指定字符在原字符串中指定索引位置開始最后一次出現(xiàn)的索引。 (7)indexOf(String str, int startIndex):用于獲取指定字符串在原字符串中指定索引位置開始第一次出現(xiàn)的索引。 (8)lastIndexOf(String str, int startIndex):用于獲取指定字符在原字符串中指定索引位置開始最后一次出現(xiàn)的索引。(5)從現(xiàn)有字符串中截取子字符串
public String substring(int beginIndex) public String substring(int beginIndex, int endIndex)(6)去掉字符串的首位空格
public String trim()(7)替換字符串中的字符或子串
public String replace(char oldChar, char newChar):替換所有字符 public String replaceAll(String regex, String replacement):替換所有子字符串 public String replaceFirst(String regex, String replacement):替換第一個子字符串(8)分割字符串
public String[] split(String regex, int limit) regex:表示分割規(guī)則 limit:表示分割規(guī)則的應用次數(shù),如果limit>0,則得到的String數(shù)組的長度不會大于limit limit為0時,String數(shù)組中位于最后的所有空字符串元素將被丟棄,等價于public String[] split(String regex)4.格式化字符串
(1)兩種format方法
public static String format(String format, Object... args) // 依據(jù)本地的語言環(huán)境進行格式化 public static String format(Locale locate, String format, Object... args) // 依據(jù)設定的語言環(huán)境locate進行格式化5.對象的字符串表示
(1)如果用來構建對象的類中沒有toString方法,那么就調用默認的Object類中的toString()方法返回“包名.類名@內存的引用地址”
(2)如果用來構建對象的類中實現(xiàn)了toString()方法,那么就使用這個對象調用這個toString()方法并返回“包名.類名@對象.toString()”
二、StringBuffer類
StringBuffer類和String類都是用來代表字符串的,但是它們的內部實現(xiàn)方式不同。String類創(chuàng)建的字符串對象是不可修改的,也就是說,String字符串不能修改、刪除或替換字符串中的某個字符。而StringBuffer類創(chuàng)建的字符串對象是可以修改的。
1.StringBuffer的初始化
StringBuffer s = new StringBuffer(); //初始化的StringBuffer對象是一個空對象 StringBuffer s = new StringBuffer("123"); //初始化的StringBuffer對象不是一個空對象2.StringBuffer構造方法
StringBuffer() // 分配給該對象的初始容量可以容納16個字符。當該對象的實體存放的字符序列的長度大于16時,實體的容量自動增加,以便存放所有增加的字符。 StringBuffer(int size) //分配給該對象的初始容量可以容納16個字符。當該對象的實體存放的字符序列的長度大于16時,實體的容量自動增加,以便存放所有增加的字符。 StringBuffer(String s) //分配給該對象的初始容量為參數(shù)字符串s的長度額外在增加16個字符。3.常用方法
(1)追加字符串
使用append方法可以將其他Java類型數(shù)據(jù)轉化為字符串后,再追加到StringBuffer對象中。 StringBuffer append(String s):將一個字符串對象追加到當前StringBuffer對象中,并返回當前StringBuffer對象的引用。 StringBuffer append(int n):將一個int型數(shù)據(jù)轉化為字符串對象后再追加到當前StringBuffer對象中,并返回當前StringBuffer對象的引用。 StringBuffer append(Object o):將一個Object對象o的字符串表示追加到當前StringBuffer對象中,并返回當前StringBuffer對象的引用。 類似的方法還有: StringBuffer append(boolean b)StringBuffer append(char c)
StringBuffer append(long n)
StringBuffer append(float f)
StringBuffer append(double d)
(2)獲取單個字符或設置指定字符
public char charAt(int n)// charAt(int n)用來獲取參數(shù)n指定位置上的單個字符。字符串序列從0開始,即當前對象實體中n的值必須是非負的,并且小于當前對象實體中字符串的序列長度。
public void setCharAt(int n,char ch)
// 用來將當前StringBuffer對象實體中的字符對象位置n處的字符用參數(shù)ch指定的字符替換。n的值必須是非負的,并且小于當前對象實體中字符串序列的長度。
(3)插入字符串
StringBuffer insert(int index,String str) // 將參數(shù)str指定的字符串插入到參數(shù)index的位置,并返回當前對象的引用。(4)反轉字符串
public StringBuffer reverse() // StringBuffer對象使用reverse()方法將該對象實體中的字符翻轉,并返回當前對象的引用(5)刪除子字符串或字符
StringBuffer delete(int startIndex,int endIndex) // 用于刪除子字符串。參數(shù)startIndex指定需刪除的第一個字符的下標,而endIndex指定了需刪除的最后一個字符的下一個字符的下標。// 因此要刪除的子字符串是從startIndex位置開始到endIndex-1的位置結束。
deleteCharAt(int index)方法刪除當前StringBuffer對象實體的字符串中在index位置的字符。
(6)替換子字符串或字符
StringBuffer replace(int startIndex,int endIndex,String str) // 將當前StringBuffer對象實體中的字符串的一個子字符串用參數(shù)str指定的字符串替換。// 被替換的子字符串由下標startIndex和endIndex指定,即從starIndex到endIndex-1的字符串被替換。該方法返回當前StringBuffer對象的引用。
三、數(shù)據(jù)緩沖區(qū)
數(shù)據(jù)緩沖區(qū)是由具有相同類型的數(shù)值構成的數(shù)組,Buffer類是一個抽象類,它的子類包括:ByteBuffer、CharBuffer、DoubleBuffer、IntBuffer、LongBuffer和ShortBuffer。
注意:StringBuffer類與這些緩沖區(qū)沒有關系。
最常使用的是ByteBuffer和CharBuffer類,每個緩沖區(qū)的的特征是:
- 一個容量,它永遠不能改變。
- 一個讀寫位置,下一個值將在此進行讀寫。
- 一個界限,超過它進行讀寫是沒有意義的。
- 一個可選的標記,用于重復一個讀入或讀寫操作。
這些值滿足下面的條件:0≤標記≤讀寫位置≤界限≤容量。
常用方法:
Buffer clear():將位置復位到0,并將界限設置到容量,使這個緩沖區(qū)為寫出做好準備 Buffer flip():將界限設置到位置,將位置復位到0,使這個緩沖區(qū)為讀入做好準備 Buffer rewind():將讀寫位置復位到0,并保持界限不變,使這個緩沖區(qū)為重新讀入相同的值做好準備 Buffer mark():將這個緩沖區(qū)的標記設置到讀寫位置 Buffer reset():將這個緩沖區(qū)的位置設置到標記,從而允許被標記的部分可以再次被讀入或寫出 int remaining():返回剩余可讀寫或可寫出值的數(shù)量,即界限與位置之間的差異 int capacity():返回這個緩沖區(qū)的容量 int position():返回這個緩沖區(qū)的位置?
轉載于:https://www.cnblogs.com/BigJunOba/p/9439660.html
總結
以上是生活随笔為你收集整理的Java基础(三十四)String、StringBuffer类和数据缓冲区Buffer类的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 净值小于1元的基金能买吗 注意这一点就
- 下一篇: Java instanceof运算符