Java—— StringBuilder 和 StringBuffer

1.介绍

由于String的不可更改特性,为了方便字符串的修改,Java中又提供了StringBuilder和Stringbuffer类,这两个类大部分功能是相同的,以下为常用方法:

    public static void main(String[] args) {
        StringBuilder sb1 = new StringBuilder("hello");
        StringBuilder sb2 = sb1;

        //追加:即尾插-->字符、字符串、整型数字
        sb1.append(' ');//hello
        sb1.append("world");//hello world
        sb1.append(123);//hello world123
        System.out.println(sb1);//hello world123

        System.out.println(sb1 == sb2);//true
        System.out.println(sb1.charAt(0));//获取0号位上的字符h
        System.out.println(sb1.length());//获取字符串的有效长度14
        System.out.println(sb1.capacity());//获取底层数组的总大小
        sb1.setCharAt(0,'H');//设置任意位置的字符,结果:Hello world123
        sb1.insert(0,"Hello world!!!");//Hello world!!!Hello world123
        System.out.println(sb1);//Hello world!!!Hello world123

        System.out.println(sb1.indexOf("Hello"));//获取Hello第一次出现的位置
        System.out.println(sb1.lastIndexOf("hello"));//获取hello最后一次出现的位置
        sb1.deleteCharAt(0);//删除首字符
        sb1.delete(0,5);//删除[0,5)范围内的字符

        String str = sb1.substring(0,5);//截取[0,5)区间中的字符以String的方式返回
        System.out.println(str);
        sb1.reverse();//字符串逆转
        str = sb1.toString();//将StringBuffer以String的方式返回
        System.out.println(str);
    }

String和StringBuilder最大的区别:String的内容无法修改,而StringBuilder的内容可以修改

tips:String和StringBuilder类不能直接转换,如果想要互相转换,可以采取如下原则:

  • String变为StringBuilder:利用StringBuilder的构造方法或append()方法
  • StringBuilder变为String:调用toString()方法

2. 面试题

1、String、StringBuffer、StringBuilder的区别

  • String的内容不能修改,StringBuffer和StringBuilder的内容可以修改
  • StringBuffer和StringBuilder的大部分功能是相似的
  • StringBuffer采用同步处理(多线程),属于线程安全操作;StringBuilder未采用同步处理(单线程),属于线程不安全操作

2、以下总共创建了多少个String对象(不考虑常量池之前是否存在)

        String str = new String("ab");
        String str = new String("a") + new String("b");

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

electron初学

最近有一个开发桌面端的业务,考虑到跨平台就使用了electron。 引用官网:Electron是一个使用 JavaScript、HTML 和 CSS 构建桌面应用程序的框架。 嵌入 Chromium 和 Node.js 到 二进制的 Electron 允许您保持一个 JavaScript 代码代码库并创建 在Windows…

[代码复现]Self-Attentive Sequential Recommendation(ing)

参考代码:SASRec.pytorch 可参考资料:SASRec代码解析 前言:文中有疑问的地方用?表示了。可以通过ctrlF搜索’?。 环境 conda create -n SASRec python3.9 pip install torch torchvision因为我是mac运行的,所以device是mps 下面…

MATLAB函数模块光显示zeros/poles怎么办?

出现下面这种图了怎么办?是做错了吗? 这种图就是它显示不完整了,把它拉大点就可以完全显示了。

编辑任何场景! 3DitScene:通过语言引导的解耦 Gaussian Splatting开源来袭!

文章:https://arxiv.org/pdf/2405.18424 项目:https://zqh0253.github.io/3DitScene/ huggingface:https://huggingface.co/spaces/qihang/3Dit-Scene 场景图像编辑在娱乐、摄影和广告设计中至关重要。现有方法仅专注于2D个体对象或3D全局场景编辑&…

harbor -- docker私有仓库安装配置

1 安装docker-compose $ curl -L "https://get.daocloud.io/docker/compose/releases/download/v1.25.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose $ chmod x /usr/local/bin/docker-compose 2 安装配置harbor $ wget https://g…

Windows11 wsl2编译Android14 使用ASfP Debug windows上启动的模拟器

wsl2的安装和配置 安装: 直接百度搜索最新的wsl2安装教程即可,官网:https://learn.microsoft.com/zh-cn/windows/wsl/install 1. 启用适用于 Linux 的 Windows 子系统(以管理员身份打开 PowerShell 并运行) Enable-WindowsOptionalFeature…

网络安全岗秋招面试题及面试经验分享

Hello,各位小伙伴,我作为一名网络安全工程师曾经在秋招中斩获🔟个offer🌼,并在国内知名互联网公司任职过的职场老油条,希望可以将我的面试的网络安全大厂面试题和好运分享给大家~ 转眼2024年秋招又快到了金…

【学习】软件测试中如何进行Web网页兼容性测试

在数字时代,Web网页作为信息传递和交流的重要平台,其稳定性和用户体验至关重要。如同一位匠人细致打磨他的工艺品,开发者亦需精心测试网页的兼容性,确保其在各种设备和浏览器上的表现无懈可击。今天,我们就来探讨如何对…

启智CV机器人,ROS, ubuntu 18.04

资料: https://wiki.ros.org/kinetic/Installation/Ubuntu https://blog.csdn.net/qq_44339029/article/details/120579608 http://wiki.ros.org/melodic/Installation/Ubuntu https://github.com/6-robot/wpb_cv 一、安装ros环境 装VM。 装ubuntu18.04 desktop.…

【赠书第27期】向AI提问的艺术:提示工程入门与应用

文章目录 前言 1 问题的构建 1.1 明确性与具体性 1.2 结构化与层次性 1.3 相关性与针对性 2 提问的技巧 2.1 简洁明了 2.2 避免歧义 2.3 使用自然语言 3 与AI的互动策略 3.1 耐心与理解 3.2 逐步引导 3.3 反馈与调整 4 总结与展望 5 推荐图书 6 粉丝福利 前言 …

uni-app实现页面通信EventChannel

uni-app实现页面通信EventChannel 之前使用了EventBus的方法实现不同页面组件之间的一个通信,在uni-app中,我们也可以使用uni-app API —— uni.navigateTo来实现页面间的通信。注:2.8.9 支持页面间事件通信通道。 1. 向被打开页面传送数据…

XX集团信息(IT)战略和规划项目(154页PPT)

方案介绍: 本集团信息(IT)战略与规划项目方案是集团数字化转型和信息化建设的重要组成部分。通过本方案的实施,我们将为集团的长期发展提供坚实的信息化支撑,提高集团的管理水平和运营效率,增强企业的竞争…

来聊聊Redis中的字符串对象的设计

写在文章开头 redis对于性能的追求做到了极致,在之前的文章中我们redis的简单动态字符串SDS进行了详细的介绍了,而本文我将从顶层的视角来聊聊Redis基于SDS等数据结构实现一个平衡时间与空间的字符串对象。 Hi,我是 sharkChili ,是个不断在硬核技术上作死的 java coder ,…

2024年最具性价比宠物空气净化器推荐!小米、希喂、安德迈真实测评

一款理想的宠物空气净化器应该具备去除浮毛和异味等基本功能,但要找到一款既满足个人需求、性能出色且性价比高的产品,这需要一定的选择技巧。 遗憾的是,许多人在购买时由于对相关术语的不熟悉或缺乏挑选经验,可能会买到不适合自…

Java流与链表:探索java.util.stream与LinkedList的交汇点

在现代Java开发中,流(Streams)和链表(LinkedList)都是强大且常用的数据处理工具。java.util.stream提供了高效的方式来处理数据流,而LinkedList则是java.util包中的经典集合实现。本文将探索它们的交汇点&a…

C# PaddleOCR 单字识别效果

C# PaddleOCR 单字识别效果 效果 说明 根据《百度办公文档识别C离线SDKV1.2用户接入文档.pdf》,使用C封装DLL,C#调用。 背景 为使客户、第三方开发者等能够更快速、方便的接入使用百度办公文档识别 SDK、促进百度 OCR产品赋能更多客户,特设…

[初始计算机]——计算机网络的基本概念和发展史及OSI参考模型

🏡作者主页:点击! 🤖网络通信基础TCP/IP专栏:点击! ⏰️创作时间:2024年5月30日11点59分 🀄️文章质量:96分 ​ 目录 🌐计算机网络概述 💯…

定点化和模型量化(二)

1.量化器的种类——均匀/ https://arxiv.org/pdf/1806.08342 1.1 Uniform Affine Quantizer 这是一种最朴素的量化: s表示step,可以看作量化的最小单位;z是zero point,因为当浮点x0时,对应的量化结果就是z。 可以看…

【SQL学习进阶】从入门到高级应用(七)

文章目录 ✨数据处理函数✨if函数✨cast函数✨加密函数 ✨分组函数✨max✨min✨avg✨sum✨count✨分组函数组合使用✨分组函数注意事项 ✨分组查询✨group by✨having✨组内排序 ✨总结单表的DQL语句 🌈你好呀!我是 山顶风景独好 💕欢迎来到我…

推荐系统三十六式学习笔记:01|你真的需要个性化推荐系统吗?

目录 什么是推荐系统你需要推荐系统吗总结 什么是推荐系统 让我们来换一个角度回答三个问题,从而重新定义什么是推荐系统: 1、它能做什么? 2、它需要什么? 3、它怎么做。 对于第一个问题“它能做什么”,我的回答是:推…