【Java】字符串StringBuilder类和Stringjoiner类(013)

news2025/1/10 10:46:17

目录

♦️StringBuilder类

🎏StringBuilder构造方法

🐡无参构造

🐡有参构造

🎏SringBuilder常用方法

🎏StringBuildre类练习题:

🐡对称字符串

🐡拼装字符串

♦️Stringjoiner类

🎏Stringjoiner类的构造方法

🎏Stringjoiner类的成员方法

♦️链式编程


♦️StringBuilder类

摘要:

什么是StringBuilder❓❓

StringBuilder类可以理解为一个字符串缓冲区,它提供一个可变的字符序列,可以在该序列上进行修改操作,比如追加,插入,删除和替换等。与String类不同的是,String类的修改操作每次都会创建一个新的字符串对象,而StringBuilder类的修改操作都是在原有的字符序列上进行的,不会创建新的对象,因此在频繁进行字符串操作时,StringBuilder类的效率比String类高。


🎏StringBuilder构造方法

🐡无参构造
 StringBuilder sb=new StringBuilder();

注意:StringBuilder在java中已经存在,因此打印的不是地址值

🐡有参构造
 StringBuilder sb=new StringBuilder("abc");


🎏SringBuilder常用方法

  • public StringBuilder append(任意类型)          //添加类型,并返回对象本身
  • public StringBuilder reverse()                       //反转容器中内容
  • public int length()                                         //返回长度(字符出现次数)
  • public String toString()                                //把StringBuilder转换为String
public class StringBuilderDemo1 {
    public static void main(String[] args) {
        //1.创建对象
        StringBuilder sb1=new StringBuilder();
        //2.添加元素
        sb1.append(1);
        sb1.append(1.2);
        sb1.append(true);
        //3.反转容器中内容
        StringBuilder sb2=new StringBuilder("abc");
        sb2.reverse();
        //4.返回长度
        int len=sb2.length();
        //5.将StringBuilder转换为String
        String str=sb2.toString();
        System.out.println(sb1);
        System.out.println(sb2);
        System.out.println(len);
        System.out.println(str);
    }
}


🎏StringBuildre类练习题:

🐡对称字符串

import java.util.Scanner;

public class StringBuilderDemo1 {
    public static void main(String[] args) {
        //1.录入字符串
        System.out.println("请输入一个字符串");
        Scanner sc=new Scanner(System.in);
        String str=sc.nextLine();
        //2.创建对象
        StringBuilder sb=new StringBuilder();
        //3.将字符串反转,对比相不相同
        //注意:需先添加字符串,再将字符串反转,最后将类型转换才能进行比较
         String result=sb.append(str).reverse().toString();
        if(str.equals(result))
        {
            System.out.println("该字符串对称");
        }
        else {
            System.out.println("该字符串不对称");
        }
    }
}

🐡拼装字符串

import java.util.Scanner;
public class StringBuilderDemo1 {
    public static void main(String[] args) {
      int[] arr={1,2,3};
      String str=getToString(arr);
        System.out.println(str);

    }
    public static String getToString(int[] arr)
    {
        StringBuilder sb=new StringBuilder();
        sb.append("[");
        for (int i = 0; i < arr.length; i++) {
            if(i<arr.length-1)
            {
                sb.append(arr[i]).append(", ");//注意:当添加的内容较多时需调用两次sb.append()
            }
            else {
                sb.append(arr[i]);
            }
        }
        sb.append("]");
        return sb.toString();
    }
}



♦️Stringjoiner类

前提:

什么是Stringjoiner类❓❓StringJoiner是Java 8引入的一个用于拼接字符串的工具类。它允许我们以指定的分隔符将一组字符串连接成一个单独的字符串。我们可以在其源码中看到一个熟悉的身影StringBuilder,它是基于StringBuilder实现字符串操作的,所以它的性能和StringBuilder是差不多的,它也是非线程安全的。

🎏Stringjoiner类的构造方法

public StringJoiner(间隔符号)        //创建一个StringJoiner对象,指定拼接时的间隔符号

public StringJoiner(间隔符号,开始符合,结束符号)        //创建一个StringJoiner对象,指定拼接时的间隔符号,开始符号,结束符号


🎏Stringjoiner类的成员方法

  • public StringJoiner add(添加的内容)                   //添加数据,并返回对象本身
  • public int length()                                               //返回长度(字符出现个数)
  • public String toString()                                      //返回一个字符串(该字符串就是拼接之后的结果)   
import java.util.StringJoiner;
public class StringJoinerDemo {
    public static void main(String[] args) {
        //1.创建一个对象,并指定中间的间隔符号,开始符号,结束符号
        StringJoiner sj = new StringJoiner("---");
        //2.添加数据
        //注意:只能添加字符串
        sj.add("abc").add("bbb").add("ccc");
        System.out.println(sj);
        //3.返回一个字符串
        sj.toString();
        System.out.println(sj);
        //4. 返回长度
        int len=sj.length();
        System.out.println(len);
    }
}



♦️链式编程

❓❓链式编程是一种编码风格,允许将多个操作(如方法调用)链接在一起。这种风格通过返回当前对象的方式实现,1、提高了代码的可读性和可维护性;2、简化了代码的结构;3、优化了开发流程。重点关注于提高了代码的可读性和可维护性,链式编程使代码更加简洁,易于理解和维护,因为它减少了临时变量的需求并且通过一系列操作以直观的方式表达了代码的意图。

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

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

相关文章

(Python)内存管理

前言 内存泄漏在编程中是一个严重的问题&#xff0c;可能导致程序性能下降、系统不稳定甚至崩溃。 目录 危害 风险 动态内存分配 引用计数 内存池 垃圾回收 设计原则 危害 性能下降&#xff1a;可用内存减少&#xff0c;导致系统频繁进行内存交换&#xff0c;使程序运行…

Netdevops入门之Telnetlib语法案例

1、Telnetlib模块&#xff1a; 支持telnet/ssh远程访问的模块很多&#xff0c;常见的有telnetlib、ciscolib、paramiko、netmiko、pexpect,其中telnetlib和ciscolib对应telnet协议&#xff0c;后面3个对应SSH协议。 ①-通过ENSP环境搭建实验环境 ②-基础语法-telnetlib案例1&…

最优控制、轨迹优化相关笔记、感悟

写在前面 上学期和最近无聊在看一些最优控制、轨迹优化相关的内容&#xff0c;涉及到MIT Russ Tedrake教授的Underactuated Robotics&#xff0c;以及CMU Zachary Manchester教授的Optimal Control&#xff08;两套课程其实挺像的&#xff09;&#xff0c;加起来估计也看了十多…

机器学习算法(二)线性模型

一、线性回归 假设自变量X矩阵有3个特征&#xff0c;因变量是Y矩阵&#xff0c;w是系数矩阵 Y X * w 损失函数&#xff1a;误差平方和函数&#xff08;Y - label&#xff09;** 2 二、逻辑回归 线性回归得到的是一个实数值 z &#xff0c;用sigmoid函数可以将其映射到 0 …

【SQL Server 】SQL Server 网络配置

目录 ​编辑 第3章&#xff1a;SQL Server 网络配置 SQL Server 网络监听器 SQL Server 网络协议 配置 SQL Server 网络协议 示例&#xff1a;配置 SQL Server 使用自定义端口 安全注意事项 第3章&#xff1a;SQL Server 网络配置 SQL Server 网络监听器 SQL Server 通…

php时间 cookie session 文件上传基础

时间和日期 PHP Date&#xff08;&#xff09; 函数 格式// date(format,timestamp) format Required. Specifies the format of the timestamp timestamp Optional. Specifies a timestamp. Default is the current date and time d - 表示每月的某一天&#xff08;01…

反序列化漏洞靶机实战-serial

一.安装靶机 下载地址为https://download.vulnhub.com/serial/serial.zip&#xff0c;安装好后开启靶机&#xff0c;这里并不需要我们去登录&#xff0c;直接扫描虚拟机nat模式下c网段的ip&#xff0c;看看哪个的80端口开放&#xff0c;然后直接去访问 二.查找cookie 访问靶…

Java Try学习

一. 介绍 io.vavr.control.Try 是 Vavr 库的一个类&#xff0c;用于处理可能抛出异常的方法调用&#xff1b;它提供了一种优雅的方式来处理成功和失败的情况&#xff0c;而无需显示地使用 try-catch 块&#xff1b; 简而言之&#xff0c;它可以优雅的实现 try-catch&#xff…

链表【4】

目录 链表删除指定值元素 反转链表&#xff08;静态链表型&#xff09; 链表删除指定值元素 错误1&#xff1a;两个if间没有用else&#xff0c;导致两个都执行了 #include<stdio.h> const int N1005; int n,first,firstid; using namespace std; struct node {int da…

【Vue3】作用域插槽

【Vue3】作用域插槽 背景简介开发环境开发步骤及源码 背景 随着年龄的增长&#xff0c;很多曾经烂熟于心的技术原理已被岁月摩擦得愈发模糊起来&#xff0c;技术出身的人总是很难放下一些执念&#xff0c;遂将这些知识整理成文&#xff0c;以纪念曾经努力学习奋斗的日子。本文…

UI界面自动化测试-Selenium

Selenium工作原理 SeleniumAPI 定位元素 Selenium操作对象 **send_keys 在对象上模拟按键输入 ** clear 清除对象输入的文本内容 ** click 点击对象(无限制) submit 提交(用于form表单) ** getText() 用于获取元素的文本信息 getAttribute() 用于获取属性的值 quit 关闭…

【奥顺苹果CMS二开泛目录4.X版】PHP站群程序新增首页堆砌关键词新增四套seo模板

演示站&#xff08;赠送四套模板&#xff09;&#xff1a; https://macfan.qdwantong.com https://macfan2.qdwantong.com https://macfan3.qdwantong.com https://macfan4.qdwantong.com 4.X版程序特色功能&#xff1a; 后台除了可以设置干扰码、转码、插入符号和拼音这…

[Bugku] web-CTF-矛盾

1.开启环境 2.根据内容得知&#xff0c;get一个num&#xff0c;若num不是数字&#xff0c;出一次num的值&#xff0c;后若num1出flag&#xff1b;若num为数字则不进行任何操作所以要输出flag&#xff0c;首先要num不是数字&#xff0c;然后又要num1这显然是矛盾的&#xff0c;对…

transform详解

参考&#xff1a;https://zhuanlan.zhihu.com/p/690055241 https://zhuanlan.zhihu.com/p/685724799 https://zhuanlan.zhihu.com/p/609523552 cnn是通过卷积核的方式实现权重偏置的计算&#xff0c;ywkb&#xff0c;激活&#xff0c;前馈神经网络&#xff0c;反向传播。 trans…

P31结构体初阶

结构体的声明 结构体的基础知识 结构是一些值的集合&#xff0c;这些值成为成员变量。结构的每个成员可以是不同类型的变量。 结构体的声明 结构成员的类型 结构的成员可以是标量、数组、指针&#xff0c;甚至是其他结构体 结构体变量的定义和初始化 结构体成员的访问 结构…

AI技能提升学习-免费24年最新甲骨文(OCI)开卷AI证书(有答案)+代码调用OCI生成式AI服务教程

之前好多小伙伴和我反馈错过了24年甲骨文的AI专家级证书免费考试&#xff0c;这次小李哥就给大家带来了24年最新的OCI另外一门AI基础级考试&#xff0c;主要目的是帮助大家提升AI/ML的基础知识和技能&#xff0c;给大家带来免费的学习福利&#xff0c;赶紧关注小李哥不要再错过…

大数据技术原理-spark编程与应用

摘要 本实验总结了在"大数据技术原理"课程中进行的Spark编程实验。实验环境基于Apache Spark&#xff0c;旨在通过实践加深对Spark数据处理能力的理解。实验的主要内容包括开启Spark shell、导入必要的包、读入数据集、数据预处理、聚类模型训练、确定数据模型的中心…

STM32内部Flash存贮数据的应用(STM32F446)

目录 概述 1 STM32内部Flash介绍 1.1 MCU简介 1.2 存储空间 1.3 主要特性 1.4 嵌入式闪存 2 库函数介绍 2.1 编程接口函数 2.2 锁和解锁函数 3 功能实现 3.1 写数据函数&#xff1a;FlashDrv_Write 3.2 读数据函数&#xff1a; FlashDrv_read 3.3 源代码 4 测试…

carla unreal engine源码:如何自定义开发传感器

文章目录 前言一、目标二、代码内容三、工程搭建1、更改点总览2、工程修改1&#xff09;代码文件拷贝至目标路径2&#xff09;SafeDistanceSensor.cpp 修改3&#xff09;SafeDistanceSerializer.h 修改4&#xff09;SafeDistanceEvent.h 修改5&#xff09;Sensor.h 修改6&#…

大数据技术原理-NoSQL数据库的应用

摘要 本实验报告聚焦于"大数据技术原理"课程中的NoSQL数据库实验。实验环境包括MySQL、Redis、MongoDB、Java以及Hadoop。实验内容涉及Redis和MongoDB的安装、配置和基本操作&#xff0c;包括数据的插入、删除和查询。此外&#xff0c;实验还包括使用Java API对Mong…