Java进阶学习笔记27——StringBuilder、StringBuffer

StringBuilder:

StringBuilder代表可变字符串对象,相当于一个容器,它里面装的字符串是可以改变的,就是用来操作字符串的

好处: StringBuilder比String更适合做字符串的修改操作,效率会更高,代码会更简洁。

API文档:

 StringBuilder功能真的非常丰富。

package cn.ensource.d16_stringbuiilder;public class Test {public static void main(String[] args) {// 目标:搞清楚StringBuilder的用法和作用StringBuilder s = new StringBuilder("itheima");// 1. 拼接内容s.append(" Java");s.append(123);// 2. 支持链式编程的s.append(666).append("黑马");// 3. reverse方法System.out.println(s);s.reverse();System.out.println(s);// 4. length,返回字符串的长度System.out.println(s.length());// 5. 把StringBuilder对象又转换成String类型String res = s.reverse().toString();System.out.println(res);}
}

支持链式编程。append方法。

为啥我们的Java建议使用StringBuilder,而不用原来学过的String?

package cn.ensource.d16_stringbuiilder;public class Test2 {public static void main(String[] args) {// 目标:掌握StringBuilder的好处// 需求:要拼接100万次abc// 先用String测试性能
//        String rs = "";
//        for (int i = 1; i <= 1000000; i++) {
//            rs = rs + "abc";
//        }
//        System.out.println(rs);// 使用StringBuilder演示StringBuilder s = new StringBuilder();for (int i = 1; i <= 1000000; i++) {s.append("abc");}System.out.println(s);// 可见StringBuilder操作字符串非常快速!!!!}
}

今后:

对于字符串的相关的操作,如果频繁的拼接、修改等,建议使用StringBuilder,效率高!!!

注意:如果操作字符串较少,或者不需要修改,以及定义字符串变量,还是建议使用String。

StringBuffer和StringBuilder:

注意:

StringBuffer的用法与StringBuilder是一模一样的。

但是StringBuilder是线程不安全的,StringBuffer是线程安全的。

两者API的方法基本上都是一样的。

将来很多用户进入系统,会存在线程不安全的情况。现在我们先记住这个观点。

案例:

返回任意整形数组的内容:

需求:

设计一个方法,用于返回任意整形数组的内容,要求返回的数组内容格式如:[11, 22, 33]

分析:

1)方法是否要接收数据呢?需要接收整形数组。

2)方法是否需要返回数据呢?需要返回一个拼接的结果,字符串类型

3)方法内部:遍历数组的数据,把遍历的数据都拼接起来,此时使用StringBuilder来完成拼接。

package cn.ensource.d16_stringbuiilder;public class Test3 {public static void main(String[] args) {// 案例String res = getArrayData(new int[]{11, 22, 33});System.out.println(res);}/*** getArrayData方法*/public static String getArrayData(int[] arr) {// 判断arr是否为nullif (arr == null || arr.length == 0) {return null;}StringBuilder sb = new StringBuilder();sb.append("[");for (int i = 0; i < arr.length; i++) {sb.append(arr[i]);if (i != arr.length - 1) {sb.append(", ");}}sb.append("]");return sb.toString();}
}

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

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

相关文章

在CSDN上成长的感悟,你的粉丝长啥样?

文章目录 一、写作的初衷1. 记录所学内容2.巩固所学知识3.分享与帮助4.方便后续查找5.获取激励 二、你的粉丝长啥样&#xff1f;1. 粉丝的特点与困惑2. 关于粉丝&#xff0c;细思极恐 三、继续前行、坚持初心 在CSDN上写博文&#xff0c;对于我来说&#xff0c;不仅仅是一个记录…

OTA在线旅行社系统架构:连接世界的科技纽带

随着互联网的快速发展和人们对旅行需求的不断增长&#xff0c;OTA&#xff08;Online Travel Agency&#xff09;在线旅行社成为了现代旅行业中的重要一环。OTA系统架构的设计和实现将对旅行行业产生深远影响。本文将探讨OTA在线旅行社系统架构的重要性和关键组成部分&#xff…

Java筑基(三)

Java筑基&#xff08;三&#xff09; 一、final概念1、案例1&#xff1a;采用继承&#xff1a;2、案例2&#xff1a;final修饰的类不可以被继承&#xff1a;3、案例3&#xff1a;final修饰的类不能有子类&#xff0c;但是可以有父类4、final修饰构造方法5、final修饰普通方法6、…

渗透工具CobaltStrike工具的下载和安装

一、CobalStrike简介 Cobalt Strike(简称为CS)是一款基于java的渗透测试工具&#xff0c;专业的团队作战的渗透测试工具。CS使用了C/S架构&#xff0c;它分为客户端(Client)和服务端(Server)&#xff0c;服务端只要一个&#xff0c;客户端可有多个&#xff0c;多人连接服务端后…

音视频开发8 音视频中SDL的使用,SDL 在windows上环境搭建,SDL 使用 以及 常用 API说明,show YUV and play PCM

1.SDL简介 SDL&#xff08;Simple DirectMedia Layer&#xff09;&#xff0c;是一个跨平台的C语言多媒体开发库。 支持Windows、Mac OS X、Linux、iOS、Android 提供对音频、键盘、鼠标、游戏操纵杆、图形硬件的底层访问 很多的视频播放软件、模拟器、受欢迎的游戏都在使用…

面试中算法(A星寻路算法)

一、问题需求&#xff1a; 迷宫寻路游戏中&#xff0c;有一些小怪物要攻击主角&#xff0c;现在希望你给这些小怪物加上聪 明的AI (Artificial Intelligence&#xff0c;人工智能&#xff09;&#xff0c;让它们可以自动绕过迷宫中的障碍物&#xff0c;寻找到主角的所在。 A星…

json web token及JWT学习与探索

JSON Web Token&#xff08;缩写 JWT&#xff09;是目前最流行的跨域认证解决方案 作用&#xff1a; 主要是做鉴权用的登录之后存储用户信息 生成得token(令牌)如下 eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MSwiaWF0IjoxNjg3Njc0NDkyLCJleHAiOjE2ODc3NjA4OTJ9.Y6eFG…

1107 老鼠爱大米

solution 记录每组的最大值&#xff0c;并比较组间的最大值胖胖鼠~ #include<iostream> using namespace std; int main(){int n, m, ans, fat -1, x;scanf("%d%d", &n, &m);for(int i 0; i < n; i){ans -1;for(int j 0; j < m; j){scanf(…

【C/C++】Makefile文件的介绍与基本用法

创作不易&#xff0c;本篇文章如果帮助到了你&#xff0c;还请点赞 关注支持一下♡>&#x16966;<)!! 主页专栏有更多知识&#xff0c;如有疑问欢迎大家指正讨论&#xff0c;共同进步&#xff01; &#x1f525;c系列专栏&#xff1a;C/C零基础到精通 &#x1f525; 给大…

【论文复现】LSTM长短记忆网络

LSTM 前言网络架构总线遗忘门记忆门记忆细胞输出门 模型定义单个LSTM神经元的定义LSTM层内结构的定义 模型训练模型评估代码细节LSTM层单元的首尾的处理配置Tensorflow的GPU版本 前言 LSTM作为经典模型&#xff0c;可以用来做语言模型&#xff0c;实现类似于语言模型的功能&am…

【Torch学习笔记】

作者&#xff1a;zjk 和 的区别是逐元素相乘&#xff0c;是矩阵相乘 cat stack 的区别 cat stack 是用于沿新维度将多个张量堆叠在一起的函数。它要求所有输入张量具有相同的形状&#xff0c;并在指定的新维度上进行堆叠。

【NumPy】关于numpy.mean()函数,看这一篇文章就够了

&#x1f9d1; 博主简介&#xff1a;阿里巴巴嵌入式技术专家&#xff0c;深耕嵌入式人工智能领域&#xff0c;具备多年的嵌入式硬件产品研发管理经验。 &#x1f4d2; 博客介绍&#xff1a;分享嵌入式开发领域的相关知识、经验、思考和感悟&#xff0c;欢迎关注。提供嵌入式方向…

Android11热点启动和关闭

Android官方关于Wi-Fi Hotspot (Soft AP) 的文章&#xff1a;https://source.android.com/docs/core/connect/wifi-softap?hlzh-cn 在 Android 11 的WifiManager类中有一套系统 API 可以控制热点的开和关&#xff0c;代码如下&#xff1a; 开启热点&#xff1a; // SoftApC…

国际版Tiktok抖音运营流量实战班:账号定位/作品发布/热门推送/等等-13节

课程目录 1-tiktok账号定位 1.mp4 2-tiktok作品发布技巧 1.mp4 3-tiktok数据功能如何开通 1.mp4 4-tiktok热门视频推送机制 1.mp4 5-如何发现热门视频 1.mp4 6-如何发现热门音乐 1.mp4 7-如何寻找热门标签 1.mp4 8-如何寻找垂直热门视频 1.mp4 9-如何发现热门挑战赛 1…

【Python特征工程系列】一文教你使用PCA进行特征分析与降维(案例+源码)

这是我的第287篇原创文章。 一、引言 主成分分析&#xff08;Principal Component Analysis, PCA&#xff09;是一种常用的降维技术&#xff0c;它通过线性变换将原始特征转换为一组线性不相关的新特征&#xff0c;称为主成分&#xff0c;以便更好地表达数据的方差。 在特征重要…

DAMA数据管理知识体系必背18张框图

近期对数据管理知识体系中比较重要的框图进行了梳理总结,总共有18张框图,供大家参考。主要涉及数据管理、数据治理阶段模式、数据安全需求、主数据管理关键步骤,主数据架构、DW架构、数据科学的7个阶段、数据仓库建设活动、信息收敛三角、大数据分析架构图、数据管理成熟度等…

QGIS开发笔记(二):Windows安装版二次开发环境搭建(上):安装OSGeo4W运行依赖其Qt的基础环境Demo

若该文为原创文章&#xff0c;转载请注明原文出处 本文章博客地址&#xff1a;https://hpzwl.blog.csdn.net/article/details/139136356 长沙红胖子Qt&#xff08;长沙创微智科&#xff09;博文大全&#xff1a;开发技术集合&#xff08;包含Qt实用技术、树莓派、三维、OpenCV…

Charles抓包App_https_夜神模拟器

Openssl安装 下载安装 下载地址&#xff1a; http://slproweb.com/products/Win32OpenSSL.html 我已经下载好了64位的&#xff0c;也放出来&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1Nkur475YK48_Ayq_vEm99w?pwdf4d7 提取码&#xff1a;f4d7 --来自百度网…

地下城游戏(leetcode)

个人主页&#xff1a;Lei宝啊 愿所有美好如期而遇 地下城游戏https://leetcode.cn/problems/dungeon-game/description/ 图解分析&#xff1a; 代码 class Solution { public:int calculateMinimumHP(vector<vector<int>>& vv) {int row vv.size(), col …

Zookeeper 安装教程和使用指南

一、Zookeeper介绍 ZooKeeper 是 Apache 软件基金会的一个开源项目&#xff0c;主要基于 Java 语言实现。 Apache ZooKeeper 是一个开源的分布式应用程序协调服务&#xff0c;提供可靠的数据管理通知、数据同步、命名服务、分布式配置服务、分布式协调等服务。 关键特性 分布…