javaSE__StringBuffer概述和使用

javaSE__StringBuffer概述和使用StringBuffer 概述和使用一 StringBuffer 类概述二 StringBuffer 类的构造方法三 StringBuffer 的添加功能第一个方法第二个方法四 StringBuffer 的删除功能五 Strin

大家好,欢迎来到IT知识分享网。

一、StringBuffer类概述

StringBuffer概述:

   stringBuffer是一个字符串的缓冲区,相当于是一个容器

StringBuffer和String的区别 :

二、StringBuffer类的构造方法

public class StringBuffer_01 { public static void main(String[] args) { StringBuffer sb = new StringBuffer(); System.out.println(sb.length()); //0 //容器中的字符个数,实际值 System.out.println(sb.capacity()); //16 //容器的初始容量,理论值 StringBuffer sb2 = new StringBuffer(10); System.out.println(sb2.length()); //0 System.out.println(sb2.capacity()); //10 StringBuffer sb3 = new StringBuffer("chen"); System.out.println(sb3.length()); //5 //实际字符的个数 System.out.println(sb3.capacity()); //20 //字符串的length + 初始容量 } } 

三、StringBuffer的添加功能

第一个方法

StringBuffer的添加功能:

public class StringBuffer_01 { / StringBuffer的添加功能 public StringBuffer append(String str): 可以把任意类型数据添加到字符串缓冲区里面,并返回字符串缓冲区本身 StringBuffer是字符串缓冲区,当new的时候是在堆内存创建了一个对象,底层是一个长度为16的字符数组 当调用添加的方法时,不会再重新创建对象,在不断向原缓冲区添加字符 */ public static void main(String[] args) { StringBuffer sb = new StringBuffer(); StringBuffer sb2 = sb.append(true); StringBuffer sb3 = sb.append("chen"); StringBuffer sb4 = sb.append(100); //StringBuffer类中重写了toString方法,显示的是对象中的属性值 System.out.println(sb.toString()); //truechen100 System.out.println(sb2.toString()); //truechen100 System.out.println(sb3.toString()); //truechen100 System.out.println(sb4.toString()); //truechen100 } } 

运行上面的程序我们发现,结果都是为 truechen100,原因如下:

   我们另外说一下为什么是输出语句是:sb.toString()这个方法,其实我们直接写sb,不摇toString其实也是可以的,因为它重写了StringBuffer重写了ToString这个方法。。如果没有重写toString这个方法,那么我们输出的应该是一个地址值。

第二个方法
public class StringBuffer_01 { public static void main(String[] args) { StringBuffer sb = new StringBuffer("1234"); sb.insert(3, "chen"); //在指定位置添加元素,如果没有指定位置的索引就会报索引越界异常 System.out.println(sb); //123chen4 } } 

四、StringBuffer的删除功能

public static void main(String[] args) { // 一、 StringBuffer sb = new StringBuffer(); sb.append("chenj"); sb.deleteCharAt(4); //根据索引删除掉索引位置上对应的字符 System.out.println(sb); //chen // 二、 StringBuffer sb1 = new StringBuffer(); sb1.append("chenjian"); sb1.delete(0,2); //包含头,不包含尾 System.out.println(sb1); //enjian // ↓ 扩展内容 ↓ //清空缓冲区 sb1.delete(0,sb1.length()); System.out.println(sb1); //什么都没有,空白 sb1 = new StringBuffer(); //不要用这种方式清空缓冲区,原来的会变成垃圾 System.out.println(sb1); } 

五、StringBuffer的替换和反转功能

StringBuffer的替换和反转功能

public static void main(String[] args) { // 一、 StringBuffer sb = new StringBuffer("heigui"); sb.replace(0, 3, "baa"); //替换,含头不含尾 System.out.println(sb); //baagui // 二、 sb.reverse(); //反转 System.out.println(sb); //iugaab } 

六、StringBuffer的截取功能及注意事项

public static void main(String[] args) { // 一、 StringBuffer sb = new StringBuffer("人在塔在,长枪依在"); String str = sb.substring(4); //含头不含尾 System.out.println(str); //,长枪依在 //sb本身并没有改变 System.out.println(sb); //人在塔在,长枪依在 // 二、 String str3 = sb.substring(4, 7); //包括开始位置,不包括结束位置 System.out.println(str3); //,长枪 } 

七、StringBuffer和String的相互转换

public static void main(String[] args) { // 一、String --→ StringBuffer 通过构造方法将字符串转换为StringBuffer对象 StringBuffer sb1 = new StringBuffer("chen"); System.out.println(sb1); // 一、String --→ StringBuffer 通过append方法将字符串转换为StringBuffer对象 StringBuffer sb2 = new StringBuffer(); sb2.append("chen"); System.out.println(sb2); StringBuffer sb = new StringBuffer("chen"); // 二、StringBuffer --→ String 通过构造将StringBuffer转换为String String s1 = new String(sb); System.out.println(s1); // 二、 StringBuffer --→ String 通过toString方法将StringBuffer转换为String String s2 = sb.toString(); System.out.println(s2); // 二、StringBuffer --→ String 通过截取子字符串将StringBuffer转换为String String s3 = sb.substring(0, sb.length()); System.out.println(s3); } 

八、一道练习:将数组转成字符串,要求使用StringBuffer

练习题:把数组中的数据按照指定个格式拼接成一个字符串 举例: int[] arr = {1,2,3}; 输出结果: "[1, 2, 3]" 用StringBuffer的功能实现 如下: public static void main(String[] args) { int[] arr = {1,2,3}; System.out.println(arrayToString(arr)); //【1, 2, 3, 】 } public static String arrayToString(int[] arr) { StringBuffer sb = new StringBuffer(); //创建字符串缓冲区对象 sb.append("["); //将[添加到缓冲区 //{1,2,3} for (int i = 0; i < arr.length; i++) { //遍历数组 if(i == arr.length - 1) { sb.append(arr[i]).append("]"); //[1, 2, 3] }else { sb.append(arr[i]).append(", "); //[1, 2, } } return sb.toString(); } 

九、一道练习:将数组转成字符串,键盘录入”abc”,输出结果:“cba”,要求使用StringBuffer

练习题:把字符串反转 举例:键盘录入"abc" 输出结果:"cba" 用StringBuffer的功能实现 ,如下: public static void main(String[] args) { Scanner sc = new Scanner(System.in); //创建键盘录入对象 String line = sc.nextLine(); //将键盘录入的字符串存储在line中 System.out.println(revString(line)); } /* * 将字符串反转 * 1,返回值类型String * 2,参数列表String line */ public static String revString(String line) { StringBuffer sb = new StringBuffer(line); //将字符串转换为StringBuffer对象 sb.reverse(); //将缓冲区的内容反转 return sb.toString(); } 

十、String、StringBuffer和StringBuilder的区别

一、StringBuffer和StringBuilder的区别:

二、String和StringBuffer,StringBuilder的区别:

十一、String和StringBuffer分别作为参数传递

形式参数问题:

案例演示:

public static void main(String[] args) { // ↓ String作为参数传递 ↓ String s = "heima"; System.out.println(s); //heima change(s); System.out.println(s); //heima System.out.println("---------------------"); // ↓ StringBuffer作为参数传递 ↓ StringBuffer sb = new StringBuffer(); sb.append("heima"); System.out.println(sb); //heima change(sb); System.out.println(sb); //heimaitcast } //StringBuffer作为参数传递 public static void change(StringBuffer sb) { sb.append("itcast"); } //String作为参数传递 public static void change(String s) { s += "itcast"; } 
————————
创作不易,如觉不错,随手点赞,关注,(* ̄︶ ̄),谢谢~~

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/132735.html

(0)
上一篇 2025-07-29 14:15
下一篇 2025-07-29 14:20

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信