当前位置: 首页 > web >正文

String StringBuilder StringBuffer

文章目录

    • String
    • StringBuilder
    • StringBuffer

StringStringBuilderStringBuffer
可变性不可变可变可变
线程安全安全(天然不可变)不安全安全(同步方法)
性能低(频繁操作生成新对象)中(同步开销)
使用场景少量固定字符串单线程大量操作多线程大量操作

String

  • 特点:不可变(每次操作生成新对象),线程安全。
  • 常用方法
方法说明
length()返回字符串长度
charAt(int index)返回指定索引的字符
substring(int begin, int end)截取子串(含头不含尾)
concat(String str)字符串拼接(返回新对象)
equals(Object obj)比较内容是否相同
equalsIgnoreCase(String str)忽略大小写比较
indexOf(String str)返回子串首次出现的索引
lastIndexOf(String str)返回子串最后一次出现的索引
toLowerCase() / toUpperCase()大小写转换
trim()去除首尾空格
replace(char old, char new)替换字符
split(String regex)按正则分割为数组
matches(String regex)是否匹配正则表达式
valueOf(基本类型)将其他类型转为字符串

StringBuilder

  • 特点:可变(直接修改原对象),性能高,非线程安全
  • 常用方法
方法说明
append(任意类型)追加内容(支持链式调用)
insert(int offset, 任意类型)在指定位置插入内容
delete(int start, int end)删除子串(含头不含尾)
deleteCharAt(int index)删除指定索引的字符
replace(int start, int end, String str)替换子串
reverse()反转字符串
setCharAt(int index, char ch)修改指定索引的字符
length() / capacity()返回长度/当前容量
substring(int start, int end)截取子串(返回String)
toString()转为String对象

StringBuffer

  • 特点:可变(直接修改原对象),线程安全(方法用synchronized修饰),性能略低于StringBuilder
  • 常用方法
    (与StringBuilder完全一致,仅线程安全区别)
方法说明
append() / insert() / delete()StringBuilder
replace() / reverse()StringBuilder
length() / capacity()StringBuilder
substring() / toString()StringBuilder

ps

// String(不可变)
String s1 = "Hello";
s1.concat(" World"); // 生成新对象,原s1不变// StringBuilder(高效,非线程安全)
StringBuilder sb = new StringBuilder();
sb.append("Hello").append(" World"); // 直接修改原对象// StringBuffer(线程安全)
StringBuffer sbf = new StringBuffer();
sbf.append("Hello").append(" World"); // 同步方法保证安全
http://www.xdnf.cn/news/3454.html

相关文章:

  • 数据结构与算法学习笔记(Acwing提高课)----动态规划·背包模型(一)
  • STL之string容器
  • Gen6D代码框架分析
  • 深度学习:基于脑机接口的虚拟世界意识控制探索
  • Qt二维码demo
  • 数据飞轮驱动AI系统持续进化
  • eNSP实验——防火墙 IPSec 配置
  • 【数据结构】 复杂度
  • MCP 多工具协作链路设计:打造真正的智能工作流
  • 单片机-89C51部分:12 pwm 呼吸灯 直流电机
  • 在 Windows 上启用 Telnet 命令
  • 【C++】extern
  • Ubuntu20.04如何优雅的安装ROS 1(胎教级教程)
  • 【软件设计师:复习】上午题核心知识点总结(三)
  • 代码随想录单调栈part1
  • 前端面试每日三题 - Day 21
  • UN R79 关于车辆转向装置形式认证的统一规定(正文部分1)
  • 文章记单词 | 第59篇(六级)
  • SpringBoot 整合 RabbitMQ:Spring AMQP
  • 突破传统!TTRL如何开启大模型无监督强化学习新篇章?
  • B站Michale_ee——ESP32_IDF SDK——FreeRTOS_2 队列
  • NU1680低成本、无固件、高集成度无线充电电源接收器
  • 速通Ollama本地部署DeepSeek-r1
  • 【Redis】String详细介绍及其应用场景
  • Angular教程前言:历史、安装与用途
  • Git---GitHub Actions
  • 大模型 Function Call
  • 力扣面试150题--旋转链表
  • 编写教育网站后端页面笔记
  • 本地部署 n8n 中文版