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