java学习笔记)StringBuilder类
2023-09-14 09:15:01 时间
4.1 字符串拼接问题
由于String类的对象内容不可改变,所以每当进行字符串拼接时,总是会在内存中创建一个新的对象。例如:
public class StringDemo {
public static void main(String[] args) {
String s = "Hello";
s += "World";
System.out.println(s);
}
}
在API中对String类有这样的描述:字符串是常量,它们的值在创建后不能被更改。
根据这句话分析我们的代码,其实总共产生了三个字符串,即"Hello"
、"World"
和"HelloWorld"
。引用变量s首先指向Hello
对象,最终指向拼接出来的新字符串对象,即HelloWord
。
4.3 构造方法
根据StringBuilder的API文档,常用构造方法有2个:
public StringBuilder()
:构造一个空的StringBuilder容器。public StringBuilder(String str)
:构造一个StringBuilder容器,并将字符串添加进去。
public class StringBuilderDemo {
public static void main(String[] args) {
StringBuilder sb1 = new StringBuilder();
System.out.println(sb1); // (空白)
// 使用带参构造
StringBuilder sb2 = new StringBuilder("itcast");
System.out.println(sb2); // itcast
}
}
4.4 常用方法
StringBuilder常用的方法有2个:
public StringBuilder append(...)
:添加任意类型数据的字符串形式,并返回当前对象自身。
append方法
append方法具有多种重载形式,可以接收任意类型的参数。任何数据作为参数都会将对应的字符串内容添加到StringBuilder中。例如:
public class Demo02StringBuilder {
public static void main(String[] args) {
//创建对象
StringBuilder builder = new StringBuilder();
//public StringBuilder append(任意类型)
StringBuilder builder2 = builder.append("hello");
//对比一下
System.out.println("builder:"+builder);
System.out.println("builder2:"+builder2);
System.out.println(builder == builder2); //true
// 可以添加 任何类型
builder.append("hello");
builder.append("world");
builder.append(true);
builder.append(100);
// 在我们开发中,会遇到调用一个方法后,返回一个对象的情况。然后使用返回的对象继续调用方法。
// 这种时候,我们就可以把代码现在一起,如append方法一样,代码如下
//链式编程
builder.append("hello").append("world").append(true).append(100);
System.out.println("builder:"+builder);
}
}
备注:StringBuilder已经覆盖重写了Object当中的toString方法。
toString方法
通过toString方法,StringBuilder对象将会转换为不可变的String对象。如:
public class Demo16StringBuilder {
public static void main(String[] args) {
// 链式创建
StringBuilder sb = new StringBuilder("Hello").append("World").append("Java");
// 调用方法
String str = sb.toString();
System.out.println(str); // HelloWorldJava
}
}
相关文章
- java怎么用_如何使用Java编写程序
- 安卓java游戏模拟器_Java手机游戏模拟器
- 在线学习Java的几个网站,别再盲目学习java了![通俗易懂]
- java后端开发需要学什么_从事Java后端开发,要学习哪些知识和技能?[通俗易懂]
- Java后台接收参数出现java.lang.Integer cannot be cast to java.lang.Double错误(已解决)[通俗易懂]
- java resourcebundle_Java – Properties和ResourceBundle类学习「建议收藏」
- Java基础入门笔记02——文档注释,JavaDos文件,数据类型,类型转换,变量默认值问题
- Java基础入门笔记07——泛型类
- Java核心技术卷一学习笔记1
- Java算法大全_java贪心算法几个经典例子
- JAVA实验室设备管理系统代码_java做一个简单学生管理系统
- vscode配置java环境变量_配置Java
- Java的学习笔记(04)方法
- java并发编程(2):Java多线程-java.util.concurrent高级工具
- Java学习笔记 基础知识(注释、基本数据类型)
- Java学习笔记 (成员内部类、静态内部类、匿名内部类、方法内部类)
- Java基础学习笔记七 Java基础语法之继承和抽象类详解编程语言
- Java基础学习笔记十六 集合框架(二)详解编程语言
- Java基础学习笔记十七 集合框架(三)之Map详解编程语言
- JAVA多线程高并发学习笔记(三)——Callable、Future和FutureTask详解编程语言
- Java学习笔记之二十八深入了解Java8新特性详解编程语言
- Java学习笔记之十五Java中的static关键字解析详解编程语言
- java学习笔记13–比较器(Comparable、Comparator)详解编程语言
- java学习笔记08–泛型详解编程语言
- Java与Oracle联手构建数据库新世界(java和oracle)
- 使用Java连接Linux服务器的简单方法(java连接linux)
- Java 调用 MySQL,编写数据库程序(java导入mysql)
- Linux下运行Java:一步步踏上学习之路(linux下运行java)
- Java应用在Linux上乱码的原因及解决方法(java linux乱码)
- Java配置Oracle实现稳定的跨平台数据库连接(java配置oracle)