java中StringBuffer类和StringBuilder类常用的api

news2024/12/25 14:20:56

目录

1.StringBuffer类Api

1).构造方法

2).append("添加的字符串内容")

3).insert(int 要添加数据到指定索引后,"要添加的字符串")

4).delete(int 起始索引位置,int 结束索引位置)

5).deleteCharAt(int 指定索引)

6).replace(int 要替换字符串起始索引,int 要替换字符串结束索引,String 要替换的新内容)

7).reverse()

8).toString()

9).length()

10).capacity()

11).ensureCapacity(int 最少容量)

12).char charAt(int 指定索引位置)

13).setChar(int 要修改字符的索引,char  替换旧字符的新字符串)

14).CharSequence subSequence(int 要截取字符串的起始位置 ,int 要截取字符串的结束位置)

15).getChars(int 要复制内容的起始索引,int 要复制内容的结束索引(不包括),char[] 接受复制内容的字符数组,int )

案例:StringBuffer类的使用

1.代码

2.效果

2.StringBuilder类Api

构造方法

常用方法

1)append(在末尾追加数据的内容)

2)insert(int 要插入指定索引的位置, 插入内容的字符串)

3)delete(int start, int end)

4)deleteCharAt(int 要删除字符的索引)

5)replace(int 要替换字符串的索引位置开始, int 要替换索引的结束位置, String 替换内容的字符串)

6)reverse()

8)length()

9)capacity()

10)ensureCapacity(int 最小容量)

11)char charAt(int 索引位置)

13)StringBuilder subSequence(int 起始索引(包含), int 结束索引(不包含))

14)SgetChars(int 要复制内容索引的起始位置, int 要复制内容索引的结束位置, char[] dst, int dstBegin)

案例:StringBuilder的使用

1.代码

2.效果


1.StringBuffer类Api

  StringBuffer 类是 Java 中用于处理可变字符串的一个线程安全的类。它允许你修改字符串内容而不创建新的对象,这对于大量字符串操作来说是非常高效的。

1).构造方法

   StringBuffer():默认构造函数,创建一个空的 StringBuffer 对象。

StringBuffer sb = new StringBuffer();

 StringBuffer(int capacity):创建一个具有指定初始容量的 StringBuffer 对象。

StringBuffer sb = new StringBuffer(50);

 StringBuffer(String str):使用给定的 String 初始化 StringBuffer 对象。

StringBuffer sb = new StringBuffer("Hello");

2).append("添加的字符串内容")

将指定的数据追加到此序列的末尾。

StringBuffer sb = new StringBuffer("Hello");
sb.append(" World"); // "Hello World"

3).insert(int 要添加数据到指定索引后,"要添加的字符串")

在此序列中指定的位置插入指定数据。

StringBuffer sb = new StringBuffer("HelloWorld");
sb.insert(5, " "); // "Hello World"

4).delete(int 起始索引位置,int 结束索引位置)

删除从 start 到 end-1 位置之间的子串。

StringBuffer sb = new StringBuffer("Hello World");
sb.delete(6, 11); // "Hello"

5).deleteCharAt(int 指定索引)

删除位于 index 位置的字符。

StringBuffer sb = new StringBuffer("Hello");
sb.deleteCharAt(0); // "ello"

6).replace(int 要替换字符串起始索引,int 要替换字符串结束索引,String 要替换的新内容)

使用指定的字符串替换此序列中的子串。

StringBuffer sb = new StringBuffer("Hello World");
sb.replace(7, 12, "Java"); // "Hello Java"

7).reverse()

将此序列中的字符顺序反转。

StringBuffer sb = new StringBuffer("Hello");
sb.reverse(); // "olleH"

8).toString()

返回一个与 StringBuffer 内容相同的字符串对象。

StringBuffer sb = new StringBuffer("Hello");
String s = sb.toString(); // "Hello"

9).length()

返回此序列中的字符数。

StringBuffer sb = new StringBuffer("Hello");
int len = sb.length(); // 5

10).capacity()

返回当前容量(即可以存储的字符数,不包括任何可能发生的自动扩容)。

StringBuffer sb = new StringBuffer();
int cap = sb.capacity(); // 默认初始容量通常是 16

11).ensureCapacity(int 最少容量)

确保容量至少达到指定的最小值。如果现有容量小于新指定的最小容量,则增加容量。

StringBuffer sb = new StringBuffer();
sb.ensureCapacity(100); // 现在sb至少能容纳100个字符

12).char charAt(int 指定索引位置)

返回指定索引处的字符。

StringBuffer sb = new StringBuffer("Hello");
char ch = sb.charAt(1); // 'e'

13).setChar(int 要修改字符的索引,char  替换旧字符的新字符串)

修改指定索引处的字符。

StringBuffer sb = new StringBuffer("Hello");
sb.setCharAt(1, 'a'); // "Hallo"

14).CharSequence subSequence(int 要截取字符串的起始位置 ,int 要截取字符串的结束位置)

返回一个新的字符序列,它是此序列的一个子序列。

StringBuffer sb = new StringBuffer("Hello World");
CharSequence cs = sb.subSequence(0, 5); // "Hello"

15).getChars(int 要复制内容的起始索引,int 要复制内容的结束索引(不包括),char[] 接受复制内容的字符数组,int )

将此序列的一部分复制到目标数组中。

StringBuffer sb = new StringBuffer("Hello");
char[] dst = new char[5];
sb.getChars(0, 5, dst, 0); // dst 现在包含 {'H', 'e', 'l', 'l', 'o'}

案例:StringBuffer类的使用

1.代码

package org.xiji.mystring;

public class MyStringBuffer {
    public static void main(String[] args)
    {
        StringBuffer sbs = new StringBuffer("hello");
        System.out.println("StringBuffer的初始化:"+sbs);
        // 追加字符串
        sbs.append(" world");
        System.out.println("StringBuffer的追加字符串:"+sbs);
        
        // 插入字符串
        sbs.insert(5,"java");
        System.out.println("StringBuffer的插入字符串:"+sbs);
        
        // 删除字符串
        sbs.delete(5,9);
        System.out.println("StringBuffer的删除字符串:"+sbs);
        
        System.out.println("StringBuffer的长度:"+sbs.length());
        sbs.reverse();
        System.out.println("StringBuffer的翻转字符串:"+sbs);
        
        
        
    }
}

2.效果

2.StringBuilder类Api

  StringBuilder 类在 Java 中用于处理可变字符串。与 StringBuffer 类似,它允许你在不创建新对象的情况下修改字符串内容。但是,StringBuilder 不是线程安全的,因此在单线程环境下性能更优.

构造方法

  • StringBuilder():构造一个空的 StringBuilder 对象。

    StringBuilder sb = new StringBuilder();
  • StringBuilder(int capacity):构造一个具有指定初始容量的 StringBuilder 对象。

    StringBuilder sb = new StringBuilder(100);
  • StringBuilder(String str):构造一个包含指定字符串的 StringBuilder 对象。

    StringBuilder sb = new StringBuilder("Hello");

常用方法

  1. 1)append(在末尾追加数据的内容)
    • 将指定的数据追加到此序列的末尾。
      StringBuilder sb = new StringBuilder("Hello");
      sb.append(" World"); // "Hello World"
  2. 2)insert(int 要插入指定索引的位置, 插入内容的字符串)
    • 在此序列中指定的位置插入指定数据。
      StringBuilder sb = new StringBuilder("HelloWorld");
      sb.insert(5, " "); // "Hello World"
  3. 3)delete(int start, int end)
    • 删除从 start 到 end-1 位置之间的子串。
      StringBuilder sb = new StringBuilder("Hello World");
      sb.delete(6, 11); // "Hello"
  4. 4)deleteCharAt(int 要删除字符的索引)
    • 删除位于 index 位置的字符。
      StringBuilder sb = new StringBuilder("Hello");
      sb.deleteCharAt(0); // "ello"
  5. 5)replace(int 要替换字符串的索引位置开始, int 要替换索引的结束位置, String 替换内容的字符串)
    • 使用指定的字符串替换此序列中的子串。
      StringBuilder sb = new StringBuilder("Hello World");
      sb.replace(7, 12, "Java"); // "Hello Java"
  6. 6)reverse()
    • 将此序列中的字符顺序反转。
      StringBuilder sb = new StringBuilder("Hello");
      sb.reverse(); // "olleH"
  7. 7)toString()

    • 返回一个与 StringBuilder 内容相同的字符串对象。
      StringBuilder sb = new StringBuilder("Hello");
      String s = sb.toString(); // "Hello"
  8. 8)length()
    • 返回此序列中的字符数。
      StringBuilder sb = new StringBuilder("Hello");
      int len = sb.length(); // 5
  9. 9)capacity()
    • 返回当前容量(即可以存储的字符数,不包括任何可能发生的自动扩容)。
      StringBuilder sb = new StringBuilder();
      int cap = sb.capacity(); // 默认初始容量通常是 16
  10. 10)ensureCapacity(int 最小容量)
    • 确保容量至少达到指定的最小值。如果现有容量小于新指定的最小容量,则增加容量。
      StringBuilder sb = new StringBuilder();
      sb.ensureCapacity(100); // 现在sb至少能容纳100个字符
  11. 11)char charAt(int 索引位置)
    • 返回指定索引处的字符。
      StringBuilder sb = new StringBuilder("Hello");
      char ch = sb.charAt(1); // 'e'
  12. 12)setCharAt(int 指定索引位置, char 要替换的新字符串)

    • 修改指定索引处的字符。
      StringBuilder sb = new StringBuilder("Hello");
      sb.setCharAt(1, 'a'); // "Hallo"
  13. 13)StringBuilder subSequence(int 起始索引(包含), int 结束索引(不包含))
    • 返回一个新的字符序列,它是此序列的一个子序列。
      StringBuilder sb = new StringBuilder("Hello World");
      CharSequence cs = sb.subSequence(0, 5); // "Hello"
  14. 14)SgetChars(int 要复制内容索引的起始位置, int 要复制内容索引的结束位置, char[] dst, int dstBegin)
    • 将此序列的一部分复制到目标数组中。
      StringBuilder sb = new StringBuilder("Hello");
      char[] dst = new char[5];
      sb.getChars(0, 5, dst, 0); // dst 现在包含 {'H', 'e', 'l', 'l', 'o'}

案例:StringBuilder的使用

1.代码

package org.xiji.mystring;

public class MyStringBuilder {
    public static void main(String[] args)
    {
        // 创建一个 StringBuilder 对象
        StringBuilder sb = new StringBuilder("Hello");
        System.out.println("输出Stringbuild: "+ sb);

        // 追加字符串
        sb.append(" World"); // "Hello World"
        System.out.println("输出Stringbuild的追加字符串: "+ sb);

        // 插入空格
        sb.insert(5, " "); // "Hello  World"
        System.out.println("输出Stringbuild的插入空格: "+ sb);

        // 删除部分字符串
        sb.delete(5, 7); // "Hello World"
        System.out.println("输出Stringbuild的删除部分字符串: "+ sb);

        // 替换部分字符串
        sb.replace(7, 12, "Java"); // "Hello Java"
        System.out.println("输出Stringbuild的替换部分字符串: "+ sb);

        // 反转字符串
        sb.reverse(); // "avaJ olleH"
        System.out.println("输出Stringbuild的反转字符串: "+ sb);

        // 转换成字符串
        String result = sb.toString(); // "avaJ olleH"
        System.out.println("输出Stringbuild转换成字符串: "+ result);

        // 打印结果
        System.out.println(result); // 输出: avaJ olleH
        System.out.println("Hello World");
    }
}

2.效果

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

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

相关文章

基于SpringBoot+Vue+Uniapp微信小程序的电子竞技信息交流平台设计与实现

详细视频演示 请联系我获取更详细的演示视频 项目运行截图 技术框架 后端采用SpringBoot框架 Spring Boot 是一个用于快速开发基于 Spring 框架的应用程序的开源框架。它采用约定大于配置的理念,提供了一套默认的配置,让开发者可以更专注于业务逻辑而…

Nginx请求头丢失,引发出来的问题

1.问题 新增的几个 header 参数是这样的: api_key_idapi_key_value 我配置有2层nginx转发,从机器A到机器B再到目标服务,遇到一个接口请求需要在header中传递api_key_id和api_key_value这2个参数,但是在EC2机器上直接curl目标服…

重塑排班新体验,搭贝员工排班系统 —— 让管理更高效,工作更顺心!

在快节奏的工作环境中,排班管理往往是决定团队效率与员工满意度的关键。搭贝低代码平台精心打造的员工排班系统应用,以直观、智能、灵活为核心,为您的团队带来前所未有的排班体验。 📅 日历视图,一目了然 我们采用…

论文翻译 | Fairness-guided Few-shot Prompting for LargeLanguage Models

摘要 大型语言模型已经显示出令人惊讶的执行上下文学习的能力,也就是说,这些模型可以通过对由几个输入输出示例构建的提示进行条件反射,直接应用于解决大量下游任务。然而,先前的研究表明,由于训练示例、示例顺序和提示…

刷题小计六:矩阵

73.矩阵置零 mid 矩阵置零 ①先使用两个变量&#xff08;row_0 & col_0&#xff09;&#xff0c;记录「首行 & 首列」是否该被置零 ②在「非首行首列」的位置&#xff0c;存储置零信息到首行首列 // 把第一行第一列作为标志位for (int i 1; i < row; i) {for (…

电动牙刷拆解学习

大厂量产的产品的寻片选型为自己设计硬件的时候芯片选型提供了参考&#xff1a; 采用这个触点的方式充电相比于tppeC来说可以很好起到防水作用&#xff1a; USB公头&#xff1a; 牙刷母头&#xff1a; 电池充电芯片来自英集芯&#xff0c;型号IP2326&#xff0c;是一颗内部集…

执行node.js获取本机Ip命令,报:Error: Cannot find module ‘ip‘错误

Error: Cannot find module ip是由于没有改模块的依赖包&#xff0c;需要进行安装&#xff0c;以管理员的身份打开命令行&#xff0c;执行npm install ip 获取当前电脑的ip地址 方法一&#xff1a; const ip require("ip")/*** 1:获取当前电脑的ip地址*/ console.…

渗透测试之 域AD渗透手法【密码喷洒技术】手法详解 以及相关示例

说明: 域内密码喷洒工具: Kerbrute DomainPasswordSpray.ps1 原理抓个包分析一下&#xff1a; 域内用户枚举攻击防御&#xff1a; 流量检测&#xff1a; 说明: 域内密码喷洒&#xff08;Password Spraying&#xff09;一般和域内用户名枚举一起使用。 域内密码喷洒工具:…

slam系列1:open3d入门笔记

1. 读写数据 这里有很多测试用的pcd文件&#xff1a; https://github.com/PointCloudLibrary/data/blob/master/tutorials/ import open3d as o3d pcd o3d.io.read_point_cloud("test.pcd") o3d.io.write_point_cloud("write.pcd", pcd, True) # 默认fa…

SF6气体密度监测仪市场研究:主要企业的市场份额已超过37.13%

SF6气体密度监测仪是一种专用于监测和测量六氟化硫&#xff08;SF6&#xff09;气体密度的设备。SF6气体因其优异的绝缘性能和灭弧能力&#xff0c;被广泛应用于电力行业&#xff0c;尤其是在气体绝缘金属封闭开关设备&#xff08;GIS&#xff09;和断路器等关键设备中。随着电…

Java 函数式编程(1 万字)

此笔记来自于B站黑马程序员 good Java 历史版本及其优势 函数式编程, Stream API 一.函数伊始函数、函数对象 函数对象 行为参数法 延迟执行 a-lambda b-方法引用 复习小测 Math::random () -> Math.random()Math::sqrt (double number) -> Math.sqrt(number)Student:…

喜大普奔!eBay英国站取消个人卖家几乎所有销售费用!

二手电商市场竞争愈发激烈&#xff0c;eBay开始放大招了&#xff01;为什么说是取消个人卖家的几乎所有销售费用呢&#xff1f;一起来了解一下—— eBay英国站个人卖家无需支付最终交易费或监管运营费&#xff0c;这大大减轻了个人卖家的交易成本。不过需要注意的是&#xff0…

后端开发——规则引擎简介(Drools)

目录 什么是规则引擎&#xff1f;规则引擎带来的好处;Drools案例规则引擎的工作原理及应用场景常见的规则引擎及对比工作流引擎与规则引擎有什么不同 什么是规则引擎&#xff1f; 规则引擎&#xff0c;听起来高大上&#xff0c;其实可以理解为一种帮助你做“决策”的工具。你可…

使用浏览器原生API实现录屏功能

好早之前写了个小deme,本来都忘了,现在无意中又翻出来了,所以也来记录一下吧! 废话不说了,直接上代码了: <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><meta name="viewport" content=&q…

byte[]/InputStream/MultipartFile之间进行转换

前言 问题产生&#xff1a; 最近开发项目的时候&#xff0c;遇到了文件上传对象转换的问题 -> 我在对接抖音开放平台的时候&#xff0c;有一个图片上传的接口&#xff0c;需要将byte[]转为MultipartFile 对象&#xff0c;但是发现根本没有这样的工具类&#xff0c;后面翻阅…

无人机之巡航控制篇

一、巡航控制的基本原理 无人机巡航控制的基本原理是通过传感器检测无人机的飞行状态和环境信息&#xff0c;并将其反馈给控制器。控制器根据反馈信息和任务需求&#xff0c;计算出无人机的控制指令&#xff0c;并将其发送给执行机构。执行机构根据控制器的控制指令&#xff0c…

数据结构与算法——Java实现 33.堆排序

刻意去找的东西&#xff0c;往往是找不到的。 天下万物的来和去&#xff0c;都有它的时间。 —— 24.10.10 使用堆进行排序 算法描述 1.heapify 建立大顶堆&#xff08;所有结点的父元素大于子元素&#xff09; 2.将堆顶与堆底交换(最大元素被交换到堆底)&#xff0c;缩小并…

Python测试框架--Allure

严格意义上讲 Allure 不算是测试框架&#xff0c;但是它是生成漂亮测试报告的开源工具&#xff0c;搭配 Pytest 测试框架食用更搭。 也就是说 Allure 是在 Pytest 执行完生成的测试数据的基础上&#xff0c;对测试数据进行处理统计&#xff0c;生成格式统一、美观的测试报告。 …

java反射Class类的api

目录 Class类 1.构造器相关 1&#xff09;Constructor getConstructor(Class... parameterTypes): 2&#xff09;Constructor[] getConstructors(): 3&#xff09;Constructor getDeclaredConstructor(Class... parameterTypes): 4&#xff09;Constructor[] getDeclaredConstr…

国外火出圈儿的PM御用AI编程工具Bolt.new效果干不过国产的CodeFlying?号称全新定义全栈开发流程?

不知道大家最近有没有发现国外的很多AI都在挤破脑袋想去提升大模型的编程能力&#xff0c; 离我们最近的是上周Openai 发布的全新模型GPT-4o-Canvas&#xff0c; 拥有超强的代码编写能力。 另外还有LlamaCoder、Cursor、Claude artifacts、Replit... 光是今年一年就推出了好…