如果需要频繁修改字符串 的内容,建议使用字符串缓冲 类(StringBuffer)。



StringBuffer 其实就是一个存储字符 的容器。



容器的具备 的行为

常用方法

String 



增加

append(boolean b)    可以添加任意类型 的数据到容器中

insert(int offset, boolean b)  指定插入的索引值,插入对应 的内容。 





删除

delete(int start, int end)  根据指定的开始与结束的索引值删除对应的内容。

deleteCharAt(int index)   根据指定 的索引值删除一个字符。





修改



replace(int start, int end, String str) 根据指定 的开始与结束索引值替代成指定的内容。

reverse()   翻转字符串缓冲类的内容。  abc--->cba



                setCharAt(int index, char ch)  把指定索引值的字符替换指定的字符。 

                substring(int start, int end)  根据指定的索引值截取子串。

ensureCapacity(int minimumCapacity)  指定StringBuffer内部的字符数组长度的。



查看

indexOf(String str, int fromIndex) 查找指定的字符串第一次出现的索引值,并且指定开始查找的位置。

lastIndexOf(String str) 



capacity() 查看当前字符数组的长度。 

length() 



charAt(int index) 

toString()   把字符串缓冲类的内容转成字符串返回。



StringBuffer 与 StringBuilder的相同处与不同处:



相同点:

1. 两个类都是字符串缓冲类。

2. 两个类的方法都是一致的。

不同点:

1. StringBuffer是线程安全的,操作效率低 ,StringBuilder是线程非安全的,操作效率高。

2. StringBuffer是jdk1.0出现 的,StringBuilder 是jdk1.5的时候出现的。

推荐使用: StringBuilder,因为操作效率高。

public class Demo3 {
public static void main(String[] args){
//先使用StringBuffer无参的构造函数创建一个字符串缓冲类。
StringBuffer mj = new StringBuffer();
//添加一组数据liangmeijuan
mj.append("LiangMeiJuan"); System.out.println("存储的字符:"+mj);
//在数组0索引处插入数据
mj.insert(0, "I LOVE ");
System.out.println("插入数据后的储存字符:"+mj);
//翻转字符串内容
mj.reverse();
System.out.println("翻转字符串的内容:"+mj);
//找出J这个字符,从数组0索引开始查找
int index = mj.indexOf("J", 0);
System.out.println("索引值为:"+index);
}
}

运行结果:

存储的字符:LiangMeiJuan

插入数据后的储存字符:I LOVE LiangMeiJuan

翻转字符串的内容:nauJieMgnaiL EVOL I

索引值为:3

JAVA_SE基础——66.StringBuffer类 ③的更多相关文章

  1. JAVA_SE基础——65.StringBuffer类 ②

    字符串特点:字符串是常量:它们的值在创建之后不能更改.    字符串的内容一旦发生了变化,那么马上会创建一个新 的对象.    注意: 字符串的内容不适宜频繁修改,因为一旦修改马上就会创建一个新的对象 ...

  2. JAVA_SE基础——64.StringBuffer类 ①

     字符串特点:字符串是常量:它们的值在创建之后不能更改 字符串的内容一旦发生了变化,那么马上会创建一个新的对象. 注意:字符串的内容不适宜频繁修改,因为一旦修改马上就会创建一个新的对象. publ ...

  3. JAVA_SE基础——70.Math类

    package cn.itcast.other; /*  Math 数学类, 主要是提供了很多的数学公式.    abs(double a)  获取绝对值  ceil(double a)  向上取整 ...

  4. JAVA_SE基础——68.RunTime类

    RunTime类代表Java程序的运行时环境,每一个Java程序都有一个与之对应的Runtime实例,应用程序通过该对象与运行时环境相连,应用程序不能创建自己的Runtime实例,但可以通过getRu ...

  5. JAVA_SE基础——67.System类

    System类对大家都不陌生吧! 以前经常需要打印结果时使用的都是"System.out.println()"语句,这句代码中就使用了System类.System类定义了一些与系统 ...

  6. JAVA_SE基础——62.String类的构造方法

    下面我先列出初学者目前用到的构造方法 String 的构造方法:     String()  创建一个空内容 的字符串对象.   String(byte[] bytes)  使用一个字节数组构建一个字 ...

  7. JAVA_SE基础——55.自定义异常类

    在Java中已经提供了大量的异常类,但是这些异常类有时野很难满足开发者的要求,所以用户可以根据自己的需要来定义自己的异常类.但自定义的异常类必须继承自Exception或其子类. 可以自定义出的问题称 ...

  8. JAVA_SE基础——71.Random类制作随机验证码

    public class Demo5 { public static void main(String[] args) { char[] arr={'s','b','g','h','a','c'}; ...

  9. JAVA_SE基础——69.Date类

    package cn.itcast.other; import java.text.ParseException; import java.text.SimpleDateFormat; import ...

随机推荐

  1. Oracle数据文件丢失,数据库如何打开或恢复

    (一)如果没有备份只能是删除这个数据文件了,会导致相应的数据丢失.SQL>startup mount--ARCHIVELOG模式命令SQL>Alter database datafile ...

  2. 大数据Hadoop与Spark学习经验谈

    昨晚听了下Hulu大数据基础架构组负责人–董西成的关于大数据学习方法的直播,挺有收获的,下面截取一些PPT的关键内容,希望对正在学习大数据的人有帮助. 现状是目前存在的问题,比如找百度.查书这种学习方 ...

  3. WordPress制作圆形头像友情链接页面的方法

    网上看见过很多种友情链接页面,我比较喜欢的是圆形头像的这种,先看看效果吧:传送门 就是这种上面是圆形的友链用户头像,下面是友链用户网站名,然后鼠标移上去头像会旋转,怎么实现这种效果呢?我在网上找了很多 ...

  4. python 全栈开发,Day3(正式)

    一.基础数据类型 基础数据类型,有7种类型,存在即合理. 1.int 整数 主要是做运算的 .比如加减乘除,幂,取余  + - * / ** %...2.bool 布尔值 判断真假以及作为条件变量3. ...

  5. Python创建容器和集合之源码分析

    _collections_abc.py文件中提供了许多抽象基类,这些类将集合分解成许多互相独立的属性集 __all__ = ["Awaitable", "Coroutin ...

  6. 【前端单元测试入门04】Karma

    Karma 官方介绍 A simple tool that allows you to execute JavaScript code in multiple real browsers. 即一个允许 ...

  7. 客户端用TortoiseSVN检出代码

    在桌面空白处右键选择SVN检出,如图: 在弹出的对话框中填写服务端版本库的URL (URL获取方式在前面一章中介绍过)选择检出目录点击确定,如图: 开始检出项目,如图: 检出完成之后打开副本,即可看到 ...

  8. ASP.NET MVC编程——控制器

    每一个请求都会经过控制器处理,控制器中的每个方法被称为控制器操作,它处理具体的请求. 1操作输入参数 控制器的操作的输入参数可以是内置类型也可以是自定义类型. 2操作返回结果 结果类型 调用方法 备注 ...

  9. [总结] O(n)求和为0的最长子段

    以这题为例 Solution 我们首先用前缀和差分,可以认为G是1,R是-1,然后求一个前缀和qzh. 如果 qzh[i]==qzh[j] 那么 i~j 这一整段,一定是一个和为0的区间,即红绿相等的 ...

  10. Docker + webpack 打包前端项目

    码云代码地址: https://gitee.com/caonimashi/docker_deployment_front_end    构建基础镜像: 1.下载一个 Apline Linux 操作系统 ...