StringBuffer 与 StringBuilder类的使用
/*
如果需要频繁修改字符串 的内容,建议使用字符串缓冲 类(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类的使用的更多相关文章
- String、StringBuffer和StringBuilder类的区别
Java提供了String.StringBuffer和StringBuilder类来封装字符串,并提供了一系列操作字符串对象的方法. 它们的相同点是都用来封装字符串:都实现了CharSequence接 ...
- Java StringBuffer和StringBuilder类
Java StringBuffer和StringBuilder类 当对字符串进行修改的时候,需要使用StringBuffer和StringBuilder类. 和String类不同的是,StringBu ...
- Java 12 - Java StringBuffer和StringBuilder类
Java StringBuffer和StringBuilder类 当对字符串进行修改的时候,需要使用StringBuffer和StringBuilder类. 和String类不同的是,StringBu ...
- StringBuffer 和 StringBuilder 类
当对字符串进行修改的时候,需要使用 StringBuffer 和 StringBuilder 类. 和 String 类不同的是,StringBuffer 和 StringBuilder 类的对象能够 ...
- Java StringBuffer 和 StringBuilder 类
当对字符串进行修改的时候,需要使用 StringBuffer 和 StringBuilder 类. 和 String 类不同的是,StringBuffer 和 StringBuilder 类的对象能够 ...
- AJPFX关于StringBuffer,StringBuilder类 总结(一)
StringBuffer,StringBuilder类 StringBuffer是同步的,数据安全,效率低;StringBuilder是不同步的,数据不安全,效率高 StringBuffer:概述1) ...
- AJPFX关于StringBuffer,StringBuilder类总结(二)
StringBuffer,StringBuilder类 总结2需要注意的知识点:1):// String -- >StringBuffer String s = "hel ...
- Java ——String 类 StringBuffer 和 StringBuilder类 随机字符
本节重点思维导图 String 类 创建字符串 String str = "I love ai"; 在代码中遇到字符串常量时,"I love ai",编译器会使 ...
- 20180715-Java StringBuffer和StringBuilder类
public class Test{ public static void main(String args[]){ StringBuffer sBuffer = new StringBuffer(& ...
- StringBuffer和StringBuilder类
对字符串进行修改的时候,需要使用StringBuffer和StringBuilder类(String类是不可改变的,一旦创建了String对象,那它的值就无法改变了). 和String类不同的是,St ...
随机推荐
- Vmware 下安装linux虚拟机
由于想自己玩玩linux系统,就想着装一个linux的虚拟机,虚拟机vmware很好找,也很好用,但是linux镜像安装老是出问题,然后就找了很多版本的,最后实验成功一种,在这里分享给大家. 一.安装 ...
- Delphi按名字调用方法高级解决方案
转帖于https://lfzhs.iteye.com/blog/980200 按名字调用方法似乎一直以来都是大家比较关注的技术,在论坛上有一个经典的答复: type TProcedure = proc ...
- go 数组、切片
数组定义 // 标准 ]], , , , } fmt.Println("a", a) // 自动推导类型 b := [], , , , } fmt.Println(&qu ...
- ASP.NET中关于XML的AJAX的读取与删除
一个XML文件,名称就暂定为GroupStudents.xml吧,内容如下: <?xml version="1.0" encoding="utf-8"?& ...
- SparkSQL与Hive的整合
其他的配置hive基本配置就不记录了!! 1. 拷贝$HIVE_HOME/conf/hive-site.xml $SPARK_HOME/conf/2. 在$SPARK_HOME/conf/目录中,修改 ...
- 20145234黄斐《Java程序设计》实验五—网络安全与编程
1: 两人一组结对编程: 0. 参考http://www.cnblogs.com/rocedu/p/6766748.html#SECDSA 1. 结对实现中缀表达式转后缀表达式的功能 MyBC.jav ...
- c++ 字符串和字符串库函数
//有2个字符串定义如下: //char s1[38]="www.yjxsoft"; //char s2[]=".com"; //请编写一段代码,把字符串s2追 ...
- 10.14 (上午)开课一个月零十天 (PHP环境搭建)
一.修改APACHE的监听端口 2 1.在界面中选apache,弹出隐藏菜单选项,打开配置文件httpd.conf; 2.找到Listen 80 和 ServerName localhost:80; ...
- setInterval只执行一次的原因
setInterval(arrow(),) 改为: setInterval(arrow,) 原因: arrow()这是一个函数调用,函数调用就会有返回值, 而arrow()没有返回值,所以这里的arr ...
- 快速搭建属于自己的mongodb数据库
前言 MongoDB 是一个基于分布式文件存储的数据库.由C++语言编写,支持Windows,Linux,OSX,Solaris等平台,默认端口为27017,是一个效率非常高的nosql数据库. 我的 ...