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

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

笔试题目:使用Stringbuffer无 参的构造函数创建 一个对象时,默认的初始容量是多少? 如果长度不够使用了,自动增长多少倍?
StringBuffer 底层是依赖了一个字符数组才能存储字符数据 的,该字符串数组默认 的初始容量是16, 如果字符数组的长度不够使用 死,自动增长1倍。

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,因为操作效率高。

 package com.Stringuse;
/*
如果需要频繁修改字符串 的内容,建议使用字符串缓冲 类(StringBuffer)。
StringBuffer 其实就是一个存储字符 的容器。
笔试题目:使用Stringbuffer无 参的构造函数创建 一个对象时,默认的初始容量是多少? 如果长度不够使用了,自动增长多少倍?
StringBuffer 底层是依赖了一个字符数组才能存储字符数据 的,该字符串数组默认 的初始容量是16, 如果字符数组的长度不够使用 死,自动增长1倍。
容器的具备 的行为
增加
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 Stringbuffer { public static void main(String[] args) { String str1 = "abc";
String str2 = "def";
String str3 = str1 + str2;
System.out.println(str3);
System.out.println("str1与str2是否为同一个对象,"+(str1==str2));
StringBuffer sb = new StringBuffer();
//先使用StringBuffer无参的构造函数创建一个字符串缓冲类。
//添加任意类型 的数据到容器中
sb.append("我的手机号是");
sb.append(13695313317l); System.out.println(sb);
//指定插入的索引值,插入对应 的内容。
/*sb.insert(2, "新");
System.out.println(sb);‘ //根据指定的开始与结束的索引值删除对应的内容。
sb.delete(0, 2);
System.out.println(sb);
//根据指定 的索引值删除一个字符。
sb.deleteCharAt(5);
System.out.println(sb); //根据指定 的开始与结束索引值替代成指定的内容。
sb.replace(2, 5, "电话号");
System.out.println(sb);
//翻转字符串缓冲类的内容。
sb.reverse();
System.out.println(sb);
//把指定索引值的字符替换指定的单个字符。
sb.setCharAt(5, ':');
System.out.println(sb);
//根据指定的索引值截取子串。
String s = sb.substring(2,6);
System.out.println("子串的内容:"+s);
System.out.println(sb);
//指定StringBuffer内部的字符数组长度的。 //查找指定的字符串第一次出现的索引值,并且指定开始查找的位置。
int x = sb.indexOf("3317", 0);
System.out.println("第几各索引值,"+x);
//查看当前字符数组的长度。
System.out.println(sb.capacity());
//当前存储字符的个数
int y = sb.length();
System.out.println("存储的字符个数,"+y);
//查找相应索引值对应的字符
System.out.println("相应索引值对应的字符,"+sb.charAt(12));*/
//把字符串缓冲类的内容转成字符串返回。
String st1 = sb.toString();
test(st1);
}
public static void test(String st){
System.out.println("dsbvbsbuv");
} }

StringBuffer 与 StringBuilder类的使用的更多相关文章

  1. String、StringBuffer和StringBuilder类的区别

    Java提供了String.StringBuffer和StringBuilder类来封装字符串,并提供了一系列操作字符串对象的方法. 它们的相同点是都用来封装字符串:都实现了CharSequence接 ...

  2. Java StringBuffer和StringBuilder类

    Java StringBuffer和StringBuilder类 当对字符串进行修改的时候,需要使用StringBuffer和StringBuilder类. 和String类不同的是,StringBu ...

  3. Java 12 - Java StringBuffer和StringBuilder类

    Java StringBuffer和StringBuilder类 当对字符串进行修改的时候,需要使用StringBuffer和StringBuilder类. 和String类不同的是,StringBu ...

  4. StringBuffer 和 StringBuilder 类

    当对字符串进行修改的时候,需要使用 StringBuffer 和 StringBuilder 类. 和 String 类不同的是,StringBuffer 和 StringBuilder 类的对象能够 ...

  5. Java StringBuffer 和 StringBuilder 类

    当对字符串进行修改的时候,需要使用 StringBuffer 和 StringBuilder 类. 和 String 类不同的是,StringBuffer 和 StringBuilder 类的对象能够 ...

  6. AJPFX关于StringBuffer,StringBuilder类 总结(一)

    StringBuffer,StringBuilder类 StringBuffer是同步的,数据安全,效率低;StringBuilder是不同步的,数据不安全,效率高 StringBuffer:概述1) ...

  7. AJPFX关于StringBuffer,StringBuilder类总结(二)

    StringBuffer,StringBuilder类 总结2需要注意的知识点:1):// String -- >StringBuffer        String s = "hel ...

  8. Java ——String 类 StringBuffer 和 StringBuilder类 随机字符

    本节重点思维导图 String 类 创建字符串 String str = "I love ai"; 在代码中遇到字符串常量时,"I love ai",编译器会使 ...

  9. 20180715-Java StringBuffer和StringBuilder类

    public class Test{ public static void main(String args[]){ StringBuffer sBuffer = new StringBuffer(& ...

  10. StringBuffer和StringBuilder类

    对字符串进行修改的时候,需要使用StringBuffer和StringBuilder类(String类是不可改变的,一旦创建了String对象,那它的值就无法改变了). 和String类不同的是,St ...

随机推荐

  1. 小程序canvas中文字设置居中锚点

    小程序中经常会遇到要生成图片的需求,图片一般会加上用户的头像和昵称之类的,头像只需要把腾讯域名添加到request和download列表中,使用wx.getImageInfo()就可以缓存到本地,成功 ...

  2. SMARTFORMS关闭失败

    用户要调整表单样式,结果调整完发现打印时报错. 检查表单后发现,是因为用户要求删除表单中的一个单元格,但是删除TEMPLATE中的一个格子后,忘了调整后续单元格内容输出的位置.导致输出错误.

  3. Python虚拟环境包导出

    一.导出包文件 1.进入虚拟环境 2.进入项目目录下创建放置包文件的文件夹(whls) mkdir whls 3.进入whls文件夹,执行导出命令 (导入包时有网络) cd whls pip free ...

  4. mybatis第二天——动态SQL与关联查询

    大纲摘要: 1.输入映射和输出映射 a) 输入参数映射 b) 返回值映射 2.动态sql a) If b) Where c) Foreach d) Sql片段 3.关联查询 a) 一对一关联 b) 一 ...

  5. C# WPF Image控件下对于Base64的转化显示

    原文:C# WPF Image控件下对于Base64的转化显示 算作前言 本文对图片如何转化成base64不做描述,我们可以从很多途径了解到转化办法.却很少有博客提到怎么在WPF的Image控件中显示 ...

  6. Linux下开发python django程序(django数据库多对多关系)

    1.多对多关系数据访问 models.py设置 from django.db import models # Create your models here. sex_choices=( ('f',' ...

  7. CF 1138 E. Museums Tour

    E. Museums Tour 链接 分析: 按时间建出分层图,每个点形如(u,t),表示u在在t个时刻的点,tarjan缩点.每个强连通分量中的点都能经过,然后DAG上dp. 代码: #includ ...

  8. Kubernetes学习之路(八)之Kubeadm部署集群

    一.环境说明 节点名称 ip地址 部署说明 Pod 网段 Service网段 系统说明 k8s-master 192.168.56.11 docker.kubeadm.kubectl.kubelet ...

  9. Java将List<T>集合组装成树(Tree)树结构组装

    把列表转换为树结构 /** * 把列表转换为树结构 * * @param originalList 原始list数据 * @param keyName 作为唯一标示的字段名称 * @return 组装 ...

  10. Appium+python的单元测试框架unittest(1)(转)

    unittest为python语言自带的单元测试框架,python把unittest封装为一个标准模块封装在python开发包中.unittest中常用的类有:unittest.TestCase.un ...