StringBuffer
特點:
被final鎖修飾,因此不能被繼承.
存儲:
方法1:append() 添加數據到緩沖區.
返回類型:StringBuffer
方法: append(指定數據) 將指定數據添加到已有數據的結尾.
方法2:insert(index,數據內容)
返回類型:StringBuffer
方法: insert(index,數據內容) 將數據內容插入到指定的index位置中去.
刪除:
方法1: delete(int start,int end) 刪除緩沖區的數據.
返回類型:StringBuffer
方法: delete(int start,int end) 將數據從start開始到end的位置刪除
包含頭不包含尾部,即包含start的位置,不包含end的位置.
方法2: deletecharAt(index) 刪除指定index位置的字符
替換:
方法1: replace(位置1,位置2,(String類型的)替換內容)
返回類型為StringBuffer
方法: replace(位置1,位置2,(String類型的)替換內容)
將數據從位置1到位置2(不包含位置2)的數據替換成要要替換的字符串內容.
方法2: setCharAt(位置,要替換的內容)
返回類型 void
方法: setCharAt(int位置,char要替換的內容) 將數據從指定的位置用替換的字符內容.
反轉: reverse() 返回類型StringBuffer.
有關的代碼實例:
1 class StringBufferDemo 2 { 3 public static void main(String args[]) 4 { 5 //function_add(); 6 //function_del(); 7 StringBuffer sb = new StringBuffer("abcdefg"); 8 char [] ch = new char[6]; 9 sb.getChars(1,4,ch,1);10 for(int i = 0; i <=ch.length; i++)11 {12 QQQ"); //將字符串"QQQ"從位置1中插入到緩沖區的數據中.37 38 // sb.insert(100,"QQQ"); 編譯的時候會出現角標越界的異常.39 //printer("sb==sb1?:"+(sb==sb1));40 41 printer(sb.toString());42 //printer(sb1.toString());43 }44 45 public static void printer(String str)46 {47 System.out.println(str);48 }49 }JDK1.5版本以后出現了StringBuilder
StringBuffer是線程同步.
StringBuidlder是線程不同步,單線程的時候效率高.快捷.
以后開發建議使用StringBuilder.
JDK升級一般三個方面:
1. 提高效率2. 提高安全性簡化書寫基礎數據類型對象包裝類:
小寫是基本數據類型 大寫開頭是類
int Integer
byte Byte
float Float
double Double
boolean Boolean
char Character
short Short
long Long
1.獲取整型變量的最大值: Integer.MAX_VALUE
例如:printer("int max = "+Integer.MAX_VALUE);
最常見應用為:
將基本數據類型轉成字符串.
方法1: 基本數據類型+””
方法2: 基本數據類型類.toString(基本數據類型)
例如: Integer.toString(34); 將整數34轉成字符串類型的”34”.
將字符串轉成基本數據類型
將一個字符串轉成整數:
(靜態調用方式)
Integer.parseInt(“32”); 將字符串”32”轉成整數 32.
格式為:
xxx a = Xxx.parseXxx(String);
例如: int a = Integer.parseInt(“123”);
非靜態方法轉換 (對象調用方式)
Integer a = new Integer(“123”);
int num = a.intValue();
進制之間轉換:
十進制轉成其他進制:
Integer.toBinayString(要轉的數); //轉成二進制
Integer.toHexString(要轉的數); //轉成十六進制
Integer.toOctalString(要轉的數); //轉成八進制
其他進制轉成十進制:
格式:
xxx a = Xxx.parseXxx(要轉換的數,要轉的進制)
例如: int a = Integer.parseInt(“110”,2); 將110用二進制轉成十進制數.
括號中的數和轉換的進制需要相互對應.不然的話編譯會有異常發生.
相關的簡單代碼實例:
1 class IntegerDemo 2 { 3 public static void main(String args[]) 4 { 5 //獲取整型變量的最大值 6 printer("int max = "+Integer.MAX_VALUE); 7 8 int num = Integer.parseInt("123"); //將字符串"123"轉成整數123. 9 num = num +4; //將整數4和整數123先加10 printer("num ="+num); //輸出的結果為127.11 12 printer(Integer.toBinaryString(-6));//將十進制數轉成二進制數13 printer(Integer.toHexString(60)); //將十進制數轉成十六進制數14 printer(Integer.toOctalString(60)); //將十進制數轉成八進制數15 16 int a = Integer.parseInt("110",2); //將二進制數110按2進制轉換成十進制數 // 二進制數110對應的十進制數是6.17 printer("a="+a); //結果a=6.18 19 }20 21 public static void printer(String str)22 {23 System.out.println(str);24 }25 26 27 } 1 class IntegerDemo1 2 { 3 public static void main(String args[]) 4 { 5 //function(); 6 //Integer a = new Integer(4); 7 Integer a = 4; //自動裝箱 8 a=a+2; //a+2中的a相當于做了a.intValue()操作,a自動拆箱變成了int類型.然后和2進行運算,在將和進行自動的裝箱操作賦值給a. 9 printer("a="+a);10 11 12 Integer x = 128;13 Integer y = 128;14 printer("x==y:?"+(x==y)); //結果是false.15 16 Integer m = 127;17 Integer n = 127;18 printer("m==n:?"+(m==n)); //結果為true. m 和n指向的是同一個Integer對象19 //因為當數值在byte范圍之內的時候,對于JDK1.5以后的新版本,如果該數值已經存在,不會在開辟新的空間.20 21 }22 public static void function()23 {24 Integer x = new Integer("123");25 Integer y = new Integer(123);26 printer("x==y:?"+(x==y));27 printer("x.equals(y):?"+x.equals(y));28 }29 public static void printer(String str)30 {31 System.out.println(str);32 }33 34 35 }新聞熱點
疑難解答