1.需要時常變更內容的字串
2.StringBuffer類別的效能是優於類別String
3.更完整的資料:http://mis.hwai.edu.tw/~kevin/MISProject/JAVAProject/chapter5/c5-2.htm
程式
/**
*
*/
/**
* @author vicyuyu311
*
*/
public class stringbuffer {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
StringBuffer str = new StringBuffer("Hello World"); //宣告StringBuffer物件,並指定內容
System.out.println("變更前,str的hash Code為:" + str.hashCode());
System.out.println("變更前,str的內容為 ----- " + str);
str.append(" Hello Java"); //現在更改str的內容
System.out.println("變更後,str的hash Code為:" + str.hashCode());
System.out.println("變更後,str的內容為 ----- " + str);
String newStr = new String(str);
System.out.println("新建立的String物件,內容為:" + newStr);
System.out.println("新建立的String物件,hash Code為:" + newStr.hashCode());
}
}
sample052 修改stringbuffer字串
1.使用stringbuffer類別的charAt方法,可以取得字串中的一個字元
2.setCharAt,可以更改字串中的字元
程式
/**
*
*/
/**
* @author vicyuyu311
*
*/
public class charatsetcharat {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
StringBuffer sb = new StringBuffer("Hello Java StringBuffer!");
System.out.println(sb);
//取得更改前的字元
System.out.println("更改前的字元:" + sb.charAt(4));
//更改字元,char使用單引號
sb.setCharAt(4,'j');
System.out.println(sb);
}
}
sample053 取得,更改stringbuffer字串的長度
1.使用stringbuffer類別的length方法,傳回字串緩衝區長度
2.使用stringbuffer類別的setlength方法,更改字串緩衝區的長度,當延長字串時
會在原來後方加上null字元,當要縮短字串時,則會刪除多出來的部分
程式
/**
*
*/
/**
* @author vicyuyu311
*
*/
public class lengthsetlength {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
StringBuffer sb = new StringBuffer("Hello Java StringBuffer!");
int len = sb.length();
System.out.print(sb + " 的長度是 ");
System.out.println(len + " 個字元 ");
sb.setLength(len - 7);
System.out.println(" 刪除後方7個字: " + sb);
//比原來少7個,再加上原來7個,所以總共出現14個null
sb.setLength(len + 7);
System.out.println(" 增加後方14個null字: " + sb);
}
}
sample054 取得stringbuffer字串佔用的記憶體空間
1.使用stringbuffer類別的capacity方法,可以取得字串佔用的記憶體空間
2.java為了降低伸長字串時重新分配記憶體所耗費的時間,所以多配置了16個字元
程式
/**
*
*/
/**
* @author vicyuyu311
*
*/
public class capacity {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
StringBuffer sb = new StringBuffer("Hello Java StringBuffer!");
int len = sb.length();
System.out.print(sb + " 的長度是 ");
System.out.println(len + " 個字元 ");
int cap = sb.capacity();
System.out.println(sb + " 佔用的空間是 " + cap);
}
}
sample055 在stringbuffer字串後方加入文字
1.使用stringbuffer類別的append方法,可以在字串後方加入文字
2.append方法除了可以加入string類別的物件以外,還有多載用來加入
boolean char double float int long等型態參數的方法,這些型態的值
會以字串的型式加入在字串後方
程式
/**
*
*/
/**
* @author vicyuyu311
*
*/
public class append {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
StringBuffer sb = new StringBuffer("Hello Java");
sb.append("StringBuffer!");
System.out.println(sb);
}
}
sample056 在stringbuffer字串中插入文字
1.使用stringbuffer類別的insert方法,可以在字串後方插入另一個字串
2.字串緩衝區會增加插入字串的長度
程式
/**
*
*/
/**
* @author vicyuyu311
*
*/
public class insert {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
StringBuffer sb = new StringBuffer("Hello StringBuffer!");
sb.insert(6,"Java");
System.out.println(sb);
}
}
sample057 在stringbuffer字串中刪除文字
1.使用stringbuffer類別的delete方法,可以刪除字串中的文字
2.StringBuffer delete(int start,int end)-起點start而終點則是end-1
程式
/**
*
*/
/**
* @author vicyuyu311
*
*/
public class delete {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
StringBuffer sb = new StringBuffer("Hello Java StringBuffer!");
sb.delete(6,10);
System.out.println(sb);
}
}
sample058 在stringbuffer字串中取代文字
1.使用stringbuffer類別的replace方法,
2.StringBuffer replace(int start,int end,String str)-起點是start-終點end-1
程式
/**
*
*/
/**
* @author vicyuyu311
*
*/
public class replace {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
StringBuffer sb = new StringBuffer("Hello Java StringBuffer!");
sb.replace(7,10,"AVA");
System.out.println(sb);
}
}
sample059 選擇string和stringbuffer的區別
要使用string還是stringbuffer類別,有兩大指標
1.內容若為固定不變的字串,則使用string物件
2.如果字串有改變內容或大小的可能性,就使用stringbuffer物件
sample060 string和stringbuffer的轉換
1.從string類別轉換為stringbuffer類別,使用new
2.從stringbuffer類別轉換為string類別,使用tostring
程式
/**
*
*/
/**
* @author vicyuyu311
*
*/
public class transferstringandstringbuffer {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
//建立String類別的字串
String s1 = "轉換成StringBuffer";
//String類別到stringbuffer類別的轉換
StringBuffer sb1 = new StringBuffer(s1);
System.out.println(sb1);
//建立StringBuffer類別的字串
StringBuffer sb2 = new StringBuffer("轉換成String");
//StringBuffer類別到String的轉換
String s2 = sb2.toString();
System.out.println(s2);
}
}
沒有留言:
張貼留言