Java StringBuffer和StringBuilder类

这篇具有很好参考价值的文章主要介绍了Java StringBuffer和StringBuilder类。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

由于String的不可更改特性,为了方便字符串的修改,Java中又提供StringBuilder和StringBuffer类。与String不同的是,StringBuffer和StringBuilder是对字符串本身进行修改,并且不产生新的对象,而String是产生新的字符串进行修改。

StringBuilder常用方法

由于StringBuffer的方法和StringBuilder方法大部分是相同的,所以我们在这就先介绍StringBuilder;

方法 说明
StringBuff append(Stringstr) 在尾部追加,相当于String的+=,可以追加:boolean、char、char[]、double、float、int、long、Object、String、StringBuff的变量
char charAt(int index) 获取index位置的字符
int length() 获取字符串的长度
int capacity() 获取底层保存字符串空间总的大小
void ensureCapacity(intmininmumCapacity) 扩容
void setCharAt(int index,char ch) 将index位置的字符设置为ch
int indexOf(String str) 返回str第一次出现的位置
int indexOf(String str, intfromIndex) 从fromIndex位置开始查找str第一次出现的位置
int lastIndexOf(String str) 返回最后一次出现str的位置
int lastIndexOf(String str,int fromIndex) 从fromIndex位置开始找str最后一次出现的位置
StringBuff insert(intoffset, String str) 在offset位置插入:八种基类类型 & String类型 & Object类型数据
StringBufferdeleteCharAt(int index) 删除index位置字符
StringBuffer delete(intstart, int end) 删除[start, end)区间内的字符
StringBuffer replace(intstart, int end, String str) 将[start, end)位置的字符替换为str
String substring(int start) 从start开始一直到末尾的字符以String的方式返回
String substring(intstart,int end) 将[start, end)范围内的字符以String的方式返回
StringBuffer reverse() 反转字符串
String toString() 将所有字符按照String的方式返回
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, "Yes"); // Yeshello world123
	System.out.println(sb1);
	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);
}

StringBuilder sb1 = new StringBuilder(“hello”);
Java StringBuffer和StringBuilder类,java,python,开发语言
sb1.append(’ ');
Java StringBuffer和StringBuilder类,java,python,开发语言
sb1.append(“world”);
Java StringBuffer和StringBuilder类,java,python,开发语言
sb1.append(123);
Java StringBuffer和StringBuilder类,java,python,开发语言
StringBuilder sb2 = sb1;
System.out.println(sb1 == sb2);
==比较的是:是否引用同一个对象
Java StringBuffer和StringBuilder类,java,python,开发语言
设置任意位置的字符
sb1.setCharAt(0, ‘h’);
Java StringBuffer和StringBuilder类,java,python,开发语言
sb1.insert(0, “Yes”);
Java StringBuffer和StringBuilder类,java,python,开发语言
删除首字符
sb1.deleteCharAt(0);

Java StringBuffer和StringBuilder类,java,python,开发语言
删除[0, 5)范围内的字符
sb1.delete(0,5);

Java StringBuffer和StringBuilder类,java,python,开发语言
截取[0, 5)区间中的字符以String的方式返回
String str = sb1.substring(0, 5);
System.out.println(str);

Java StringBuffer和StringBuilder类,java,python,开发语言
字符串逆转
sb1.reverse();

Java StringBuffer和StringBuilder类,java,python,开发语言
从上述例子可以看出:String和StringBuilder最大的区别在于String的内容无法修改,而StringBuilder的内容可以修改。频繁修改字符串的情况考虑使用StringBuilder。

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

1.String变为StringBuilder: 利用StringBuilder的构造方法或append()方法
2.StringBuilder变为String: 调用toString()方法。

String、StringBuffer、StringBuilder的区别
1.String的内容不可修改,StringBuffer与StringBuilder的内容可以修改.
2.StringBuffer与StringBuilder大部分功能是相似的
3.StringBuffer采用同步处理,属于线程安全操作;而StringBuilder未采用同步处理,属于线程不安全操作文章来源地址https://www.toymoban.com/news/detail-662803.html

到了这里,关于Java StringBuffer和StringBuilder类的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • JAVA - 字符串工具类StringBuilder和StringBuffer

    目录 文章目录 前言 二.常用方法演示 1.append()用于将指定的字符串添加到当前StringBuilder对象的末尾 2.delete():用于删除StringBuilder对象中指定位置的字符。  3.insert():用于在指定位置插入指定字符串。  4.replace():用于替换指定位置的字符或字符串。 5.reverse():用于将StringBu

    2024年02月06日
    浏览(53)
  • [Java基础] StringBuffer 和 StringBuilder 类应用及源码分析

    🌹作者主页:青花锁 🌹简介:Java领域优质创作者🏆、Java微服务架构公号作者😄 🌹简历模板、学习资料、面试题库、技术互助 🌹文末获取联系方式 📝 [Java基础] StringBuffer 和 StringBuilder 类应用及源码分析 [Java基础] 数组应用及源码分析 [Java基础] String,分析内存地址,源

    2024年02月13日
    浏览(36)
  • 从零开始学Java59之StringBuilder与StringBuffer

    最近的这几篇文章,我们一直在给大家讲解字符串相关的内容。 其实字符串按照可变性,可以分为不可变字符串与可变字符串。 我们前面学习的String就属于不可变字符串,因为理论上一个String字符串一旦定义好,其内容就不可再被改变,这些内容我们已经在前面都学习过了

    2024年02月05日
    浏览(36)
  • 【java】关于String、StringBuffer和StringBuilder的那些事

      目录 一、String 1、构造方法 2、字符串的不可变性 3、字符串的比较 4、 String的常用方法: 二、StringBuider和StringBuffer 1、字符串的拼接 2、StringBuider与StringBuffer 总结     String类提供的构造方式非常多,常用的就以下两种:   注意: 1、String 是引用类型,内部并不存储字符串

    2024年04月10日
    浏览(63)
  • Java字符串知多少:String、StringBuffer、StringBuilder

    String 是 Java 中使用得最频繁的一个类了,不管是作为开发者的业务使用,还是一些系统级别的字符使用, String 都发挥着重要的作用。 String 是 不可变 的、 final 的,不能被继承,且 Java 在运行时也保存了一个字符串池(String pool) ,就使得 String 变得很特殊。 实现三个接口:

    2024年02月06日
    浏览(53)
  • 【JAVA】String ,StringBuffer 和 StringBuilder 三者有何联系?

    个人主页:【😊个人主页】 系列专栏:【❤️初识JAVA】 在之前的文章中我们介绍了JAVA中String的运用方法,事实上在JAVA字符串操作中仅仅只知道String方法是远远不够的,今天我们要介绍的 StringBuffer 和 StringBuilder 在字符串操作中同样占据总要地位。 和 String 类不同的是,S

    2024年02月14日
    浏览(53)
  • 【后端面经-Java】String与StringBuffer与StringBuilder的比较

    目录 1. String 2. StringBuffer 3. StringBuilder 4. 性能提升 5. 总结和比较 面试模拟 参考资料 不可变 查看 String 源码如下:由源码可知,String中存储数据的数组被 final 修饰,因此是不可变的 运算和操作 创建对象 创建对象有两种方式:两种方式都会在栈中创建一个字符串变量

    2024年02月16日
    浏览(45)
  • java中的String使用注意事项、StringBuilder、StringBuffer、StringJoiner

    String使用注意事项 这里第二次创造了0个对象是因为字符串常量池中已经有\\\"abc\\\" StringBuilder 注意StringBuilder支持链式编程 StringBuilder 线程安全与不安全的区别在于,当系统里存在很多人同时操作同一个StringBuilder就可能出bug,而StringBuilder不会。 StringJoiner

    2024年02月12日
    浏览(36)
  • Java 21的StringBuilder和StringBuffer新增了一个repeat方法

    发现Java 21的 StringBuilder 和 StringBuffer 中多了repeat方法: 根据名字猜猜是干嘛的?试试下面的代码: 最后会输出: 另一个 repeat 方法第一个参数是 codePoint ,指得应该是UniCode字符集中的codePoint,所以这个方法的repeat是针对UniCode字符的。 一时间似乎想不到什么特别大的用户,就

    2024年02月08日
    浏览(40)
  • Java-String、StringBuffer、StringBuilder区别及相关面试题

    在Java编程中,经常会遇到处理字符串的需求。Java提供了多个类来处理字符串,其中最常用的是String、StringBuffer和StringBuilder类。本文将介绍这三个类的基本用法和区别。 String是Java中最常用的字符串类,它是不可变的,也就是说一旦被创建,它的值就不能被改变。下面是Stri

    2024年02月11日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包