【从零开始学习JAVA | 第十篇】StringBuild介绍

news2024/9/21 3:03:08


       

前言: 

本文会对StringBuild类进行详细的介绍,他相比较于String,在进行字符串拼接的时候大大提高了效率,是一个 很实用的工具。

StringBulider:

        StringBuilder是Java中的一个类,用于在一次创建和初始化后,对字符串进行多次操作的构建器类。它可以动态的增加和删除字符串中的内容,同时避免了频繁创建新的字符串对象的开销,提高代码的效率。

        StringBuilder的操作方法与String类似,例如通过append方法可以添加新的字符串、通过insert方法可以在指定位置插入新的字符串等。此外,StringBuilder还提供了一些额外的方法来支持对于字符串的操作,例如reverse方法可以用来反转字符串中的字符。

        与String类不同的是,StringBuilder是一个可变的字符串对象。这意味着它可以在原有的字符串对象上直接进行修改,不像String每次操作都需要重新创建一个新的字符串,所以在需要频繁对字符串进行拼接和修改的情况下,使用StringBuilder可以提高程序的执行效率。

构造方法:

  • public StringBuilder()    创建一个空白的可变字符串,不含有任何内容
  • public StringBuilder()    根据字符串的内容,来创建可变的字符串对象

常用的成员方法:

  • public StringBuilder append(任意类型)       添加数据,并返回数据本身
  • public StringBuilder reverse()              反转容器中的内容
  • public int length()                                      返回长度
  • public String toString()                         通过toStrign()就可以实现把StringBuilder转换为                                                                    String()。
// 创建一个StringBuilder对象并添加数据
StringBuilder sb = new StringBuilder();
sb.append("Hello ").append("World");

// 使用 length 方法获取当前 StringBuilder 对象的长度
int len = sb.length();
System.out.println("StringBuilder对象的长度为: " + len);

// 使用 reverse 方法反转 StringBuilder 对象中的字符串
StringBuilder reversed = sb.reverse();
System.out.println("反转后的字符串为: " + reversed.toString());

 案例练习:

需求:键盘接受一个字符串,程序判断该字符串是否是对称字符串,并在控制台输出判断结果

        对症字符串;123321,111

        非对称字符串:123123 

import java.util.Scanner;
public class string04 {
    public static void main(String[] args) {
        System.out.println("请输入要进行判断的字符串");
        Scanner sc=new Scanner(System.in);
        String s1=sc.next();

        //2.反转字符串
        StringBuilder sb= new StringBuilder();
        sb.append(s1);
        sb.reverse();
        String s2;
        s2=sb.toString();

        //进行判断
        System.out.println(s1.equals(s2));

    }
}

应用场景:

StringBuilder 是Java中一个用于字符串拼接和修改的强大类,它并不是像 String 一样是一个不可变的对象,而是一个可变的对象。以下是一些StringBuilder的应用场景:

1. 字符串拼接

        Stringbuilder可以用来拼接字符串,有效避免频繁创建字符串对象的问题,特别是在需要大量字符串拼接的场景中,可以提高性能。例如在处理日志等大量文本数据时,使用StringBuilder可以有效提高效率。

2. 逆序输出

        如果需要将一个字符串逆序输出,可以利用StringBuilder类中的reverse()方法很方便地进行实现。

3. 大数据量字符串操作

        如果需要对大数据量的字符串进行操作,比如从一个非常大的文本文件中读取数据并做处理,此时String可能会遇到一些性能问题,而StringBuilder则不会。因为String对象是不可变的,每次对String对象的操作都会创建新的字符串对象,而StringBuilder对象则是可变的,对其进行操作将会更加高效。

总之,如果需要对字符串进行频繁的操作或者需要对大规模的字符串进行处理,建议选择使用StringBuilder类。使用StringBuilder可以有效提高程序的运行效率,同时也可以方便快捷地进行字符串拼接、修改和逆序输出等操作。

总结:

        虽然StringBuilder的功能并不是很多,但是他有了一个重要的性质:可以对字符串内容进行更改,这样为我们节省了大量的空间,如果在程序中大量的字符串进行操作的时候,使用stringbuilder可以减少内存溢出的风险。

如果我的内容对你有帮助,请点赞,评论,收藏。创作不易,大家的支持就是我坚持下去的动力!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/675504.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java中反射机制,枚举,Lambda的使用

目录 一、反射机制 1、含义 2、作用 3、※反射相关的几个类 3.1、Class类(Class对象是反射的基石) 3.2、Class类中相关的方法 3.2.1 (※重要)常用获得类相关的方法 3.2.2 (※重要)常用获得类中属性、变量Field相关的方法 3.2.3 获得类中注解相…

详细设计报告

聊天系统设计与实现详细设计报告 1.编写目的 详细设计的主要任务是概要设计方案做完善和细化,本阶段主要对聊天应用系统进行过程化的描述,详细确定每一个功能模块的实现方式、执行流程,为程序员编码提供依据。设计用户界面。 2.总体方案确认 (1)系统总体结构确认 该项目管理…

Redis原理 - 通信协议RESP

原文首更地址,阅读效果更佳! Redis原理 - 通信协议RESP | CoderMast编程桅杆https://www.codermast.com/database/redis/redis-communication-protocol.html RESP协议 Redis 是一个 CS 架构的软件,通信一般分两步(不包括pipeli…

计算机组成与设计Patterson Hennessy 笔记_1 计算机概要与技术

Patterson & Hennessy 计算机概要与技术 计算机应用包括:个人计算机PC,服务器,嵌入式计算机。后PC时代出现了个人移动设备PMD(手机),云计算(在网络上提供服务的大服务器集群,供…

Unity Mac最新打苹果包流程

作者介绍:铸梦xy。IT公司技术合伙人,IT高级讲师,资深Unity架构师,铸梦之路系列课程创始人。 IOS详细打包流程1.申请APPID2.申请开发证书3.创建描述文件 IOS详细打包流程 1.申请AppID 2.创建证书 3.申请配置文件(又名描…

NodeJS KOA⑩②

文章目录 ✨文章有误请指正,如果觉得对你有用,请点三连一波,蟹蟹支持😘前言KOA Koa vs Express Koa更轻量 Koa~Context对象 Koa~异步流程控制 Koa~中间件模型Koa路由 1.1基本使用 2.2请求方式2.2.1规范写法2…

数据结构——带头节点的双向循环列表

带头节点的双向循环链表是一种特殊的双向链表,它与普通的双向链表相比,最大的区别是链表头结点的 next 指针不再指向第一个实际节点,而是指向链表中的第一个节点。同时,链表尾结点的 prev 指针也不再指向 NULL,而是指向…

轻松配置深度学习模型 ?

动动发财的小手,点个赞吧! 由于所有模块都需要大量参数和设置,因此管理深度学习模型可能很困难。训练模块可能需要诸如 batch_size 或 num_epochs 之类的参数或学习率调度程序的参数。同样,数据预处理模块可能需要 train_test_spl…

Java接口幂等性,如何重试?

Java接口幂等性,如何重试? 文章目录 Java接口幂等性,如何重试?前言一、幂等性是什么?二、为什么要幂等性?三、使用什么办法实现幂等性?1.insert前先select2.加悲观锁3.加乐观锁4.加唯一索引5.Re…

uniapp系列-uni.getAppBaseInfo() versionCode appVersion 值不对应该怎么解决?

今天看到一个BUG 问题描述 我们使用uniapp的官方文档中uni.getAppBaseInfo()后获取的 appVersionCode appVersion ,发现获得的结果和我们实际设置的不一致,不是manifest.json里面的值,如下图所示官方文档:https://uniapp.dcloud…

还原大师(MD5)

根据题目提示,都猜得到这应该跟MD5的加密形式有关系 我好像还没有具体了解过MD5编码的格式,或许本题可以通过MD5的编码格式推导出字符串 但是说实话,MD5的加密方式没有找到详细简介的文章 然后我就去网上百度了一下,经过大佬wp的洗…

java springboot整合MyBatis演示增删查改操作

前面我的文章 java springboot整合MyBatis做数据库查询操作讲述了整合springboot整合MyBatis 做了根据id查询的语句 那么 我们现在按它搭建的项目继续 我们在staffDao中添加一个insert函数 参考代码如下 Insert("insert into staff(name, age, status, departmentid) va…

chatgpt赋能python:Python编程实现1+22+333,解密方法

Python编程实现122333,解密方法 在Python编程开发中,我们经常需要求解不同类型的算数表达式,其中求解一系列类似122333的表达式是一个比较常见的需求。本文将会介绍如何使用Python语言方便地求解这类表达式,为大家提供一种针对此…

Redis中AOF和RDB

在Redis的持久化中,常使用的两个手段便是AOF和RDB进行持久化。 RDB(Redis DataBase)是Redis的持久化方式之一,在配置文件中,我们可以找到 对Redis进行持久化配置,而RDB在持久化时是怎么样进行工作的呢&…

ARM、ARM架构、ARM架构芯片

ARM是一种基于精简指令集(RISC)的处理器架构,它由英国的ARM公司设计和授权。 ARM芯片具有低功耗、高性能、高集成度等特点,广泛应用于嵌入式系统、移动设备、物联网、服务器等领域。本文将介绍ARM的各类芯片,包括其特…

Java-API简析_java.lang.ClassLoader类(基于 Latest JDK)(浅析源码)

【版权声明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权) https://blog.csdn.net/m0_69908381/article/details/131345825 出自【进步*于辰的博客】 其实我的【Java-API】专栏内的博文对大家来说意义是不大的。…

CentOS 7.9 安装 Jenkins

CentOS 7.9 安装 Jenkins 文章目录 CentOS 7.9 安装 Jenkins一、概述二、安装1、安装 OpenJDK2、安装 Jenkins3、启动 Jenkins4、给 Jenkins 放行端口 三、初始化 Jenkins 配置1、访问2、解锁 Jenkins3、配置清华大学的源地址4、安装插件5、创建管理员用户6、完成安装 四、功能…

TypeScript ~ TS 掌握自动编译命令 ③

作者 : SYFStrive 博客首页 : HomePage 📜: TypeScript ~ TS 📌:个人社区(欢迎大佬们加入) 👉:社区链接🔗 📌:觉得文章不错可以点点关注 &…

锐捷睿易:云端绑定别人账号,命令方式解绑

一、适用场景 云端绑定了别人的账号,但又不能让他解绑,只能自己解绑从新绑定自己MACC 前提:需要设备联网状态才可以解绑 二、配置步骤 1、登录macc,首页点击设备解绑 2、输入收集的设备序列号,点击获取专属URL&…

chatgpt赋能python:Python清空console的方法

Python清空console的方法 随着Python的应用越来越广泛,我们经常会遇到需要清空Python console的情况。比如,我们可能需要重新开始一段代码的执行,或者想要隐藏过去的交互记录。在这篇文章中,我们将介绍几种方法来清空Python cons…