您现在的位置是:主页 > news > 做个网站费用/爱站网seo综合查询工具

做个网站费用/爱站网seo综合查询工具

admin2025/5/3 14:33:51news

简介做个网站费用,爱站网seo综合查询工具,博物馆网站微信公众号建设,青岛高端网站开发目录1 背景:字符串拼接问题2 StringBuilder概述3 StringBuilder的构造方法4 StringBuilder常用方法4.1 append方法4.2 toString方法1 背景:字符串拼接问题 由于String类的对象内容不可改变,所以每当进行字符串拼接时,总是会在内存…

做个网站费用,爱站网seo综合查询工具,博物馆网站微信公众号建设,青岛高端网站开发目录1 背景:字符串拼接问题2 StringBuilder概述3 StringBuilder的构造方法4 StringBuilder常用方法4.1 append方法4.2 toString方法1 背景:字符串拼接问题 由于String类的对象内容不可改变,所以每当进行字符串拼接时,总是会在内存…

目录

  • 1 背景:字符串拼接问题
  • 2 StringBuilder概述
  • 3 StringBuilder的构造方法
  • 4 StringBuilder常用方法
    • 4.1 append方法
    • 4.2 toString方法

1 背景:字符串拼接问题

由于String类的对象内容不可改变,所以每当进行字符串拼接时,总是会在内存中创建一个新的对象。例如:

public class StringDemo {public static void main(String[] args) {String s = "Hello";s += "World";System.out.println(s);}
}
  1. 在API中对String类有这样的描述:字符串是常量,它们的值在创建后不能被更改。
  2. 根据这句话分析我们的代码,其实总共产生了三个字符串,即"Hello""World""HelloWorld"。引用变量s首先指向Hello对象,最终指向拼接出来的新字符串对象,即"HelloWord"
  3. 由此可知,如果对字符串进行拼接操作,每次拼接,都会构建一个新的String对象,既耗时,又浪费空间。为了解决这一问题,可以使用java.lang.StringBuilder类。

2 StringBuilder概述

  1. 查阅java.lang.StringBuilder的API,StringBuilder又称为可变字符序列,它是一个类似于String 的字符串缓冲区,通过某些方法调用可以改变该序列的长度和内容。
  2. 它的内部拥有一个数组用来存放字符串内容,进行字符串拼接时,直接在数组中加入新内容。StringBuilder会自动维护数组的扩容。

3 StringBuilder的构造方法

根据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 StringBuilder常用方法

StringBuilder常用的方法有2个:

  • public StringBuilder append(...):添加任意类型数据的字符串形式,并返回当前对象自身。
  • public String toString():将当前StringBuilder对象转换为String对象。

4.1 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);//builder:helloSystem.out.println("builder2:"+builder2);//builder2:helloSystem.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);//builder:hellohelloworldtrue100helloworldtrue100}
}

备注:StringBuilder已经覆盖重写了Object当中的toString方法。

4.2 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}
}