零基础学Java—StringBuilder类(三十六)
Posted 王同学要努力
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了零基础学Java—StringBuilder类(三十六)相关的知识,希望对你有一定的参考价值。
【零基础学Java】—StringBuilder的原理(三十六)
一、String类
- 字符串是常量,他们的值在创建之后不能更改
- 字符串的底层是一个被final修饰的数组,不能改变,是一个常量
private final byte[ ] value;
- 进行字符串的相加,内存中会有多个字符串,占用空间多,效率低下
二、StringBuilder类
- 字符串缓冲区,可以提高字符串的操作效率(看成一个长度可以变化的子字符串)
- 底层也是一个数组,但是没有被final修饰,可以改变长度
byte[ ] value=new byte[16 ]
; StringBuilder
在内存中始终是一个数组,占用空间少,效率高,如果超出了StringBuilder
的容量,会自动扩容
三、StringBuilder的构造方法
java.lang.StringBuilder
类:字符串缓冲区,可以提高字符串的效率
构造方法:
StringBuilder()
构造方法不带任何字符的字符串生成器,其初始容量为16个字符StringBuilder(String str)
构造一个字符串生成器,并初始化为指定的字符串内容
public class demo07
public static void main(String[] args)
//空参数构造
StringBuilder bu1=new StringBuilder();
System.out.println("bu1:"+bu1);//bu1:
//带字符串的构造方法
StringBuilder bu2=new StringBuilder("abc");
System.out.println("bu2:"+bu2);//bu2:abc
四、StringBuffer 方法
public class RunoobTest
public static void main(String args[])
StringBuilder sb = new StringBuilder(10);
sb.append("Runoob..");
System.out.println(sb);
sb.append("!");
System.out.println(sb);
sb.insert(8, "Java");
System.out.println(sb);
sb.delete(5,8);
System.out.println(sb);
public class demo08
public static void main(String[] args)
// 创建StringBuilder对象
StringBuilder bu = new StringBuilder();
//使用append方法往StringBuilder添加数据
//StringBuilder bu2=bu.append("abc");//把bu的地址值复制给了bu2
//System.out.println(bu);//abc
// System.out.println(bu2);//abc
//System.out.println(bu==bu2);//true
//使用append方法无需添加返回值
//bu.append("abc");
//bu.append(12);
// bu.append(true);
// bu.append(8.9);
// bu.append('中');
//System.out.println(bu);//abc12true8.9中
// 链式编程:方法返回值可以是一个对象,可以继续调用方法
System.out.println("abc".toUpperCase().toLowerCase().toUpperCase().toLowerCase());
bu.append("abc").append(1).append(true).append('中').append(9.9);//abc1true中9.9
System.out.println(bu);
五、StringBuilder和String可以相互转换
/*
String 》StringBuilder:可以使用StringBuilder的构造方法
StringBuilder(String str)构造一个字符串生成器 并初始化为指定的字符串的内容
StringBuilder 》String:可以使用StringBuilder中的toString方法
*/
public class DemoStringBuilder
public static void main(String[] args)
String str="hello";
System.out.println("str:"+str);
StringBuilder letter=new StringBuilder(str);
//往StringBuilder中添加数据
letter.append("world");
System.out.println("bu:"+letter);
//StringBuilder>String
String s=letter.toString();
System.out.println(s);
以上是关于零基础学Java—StringBuilder类(三十六)的主要内容,如果未能解决你的问题,请参考以下文章