Java高级特性-String、StringBuffer和StringBuilder
Java高级特性-String、StringBuffer和StringBuilder
String
Java语言中的字符串值都属于String类,虽然有其他方法表示字符串(如字符串数组),但Java一般使用String类作为字符串的标准格式,Java编译器将字符串作为String对象,String类是字符串常量,是不可更改的常量。
String s1="abc";
String s2=new String "abc";
虽然内容相同但是new后其值就不同了
String对象一旦被创建就不能改变(与常量一样),如果需要进行大量字符串的修改操作,应该使用StringBuffy或者StringBuilder类或者字符串数组,最终结果可以转换为String对象。
StringBuffer
String和StringBuffer他们都可以存储和操作字符串,即包含多个字符的字符串数据。而StringBuffer是字符串变量,它的对象是可以扩充和修改的。
StringBuffer类的构造函数
public StringBuffer()
创建一个空的StringBuffer类的对象。注意:如果参数length小于0,将触发NegativeArraySizeException异常,
public StringBuffer( int length )
1.StringBuffer线程安全的可变字符串序列。
2.一个类似于String的字符串缓冲区,通过某些方法的调用可以改变该序列的长度和内容。
3.每个字符串缓冲区都有一定的容量,只要字符串缓冲区所包含的字符串序列的长度没有超此容量,就无需非配新的内部管冲区数组。
4.如果内部缓冲区溢出,则此容量自动增大。
StringBuilder
从JDK1.5开始,为StringBuffer补充了一个单个线程使用的等价类,即StringBuilder。
与StringBuffy相比,通常优先使用StringBuilder类,因为它支持相同所有的操作,但由于它不执行同步,所以速度更快。
StringBuilder中的使用方法:
public int length(); //字符数组
public int capacity(); //字符容量
public StringBuffer append (String str); //向字符数组中添加字符或者添加一个字符串
public StringBuffer insert(int offset, String str); //向字符数组的指定位置插入一个字符或者字符串
public int indexOf(String str); //查找字符串在字符数组中首次出现的字符的下标
public int indexOf(String str,int fromindex); //在字符数组指定位置向后查找字符串首次出现的字符的下标
public int lastindexOf(String str); //查找字符串在字符数组中最后一次出现的字符的下标
public StringBuffer reverse(); //字符串反转
这里我只是给大家列举了StringBuilder中的部分方法,剩下的可以参考API文档,没有API文档的朋友可以发邮件找我要,邮箱地址:www.CAzige0411@163.com www.xiaomuca@qq.com
StringBuilder举例:
public class StringBuilderDemo{
public static void main(String []args){
StringBuilder stringBuilder=new StringBuilder();
StringBuilder stringBuilder=new StringBuilder(100); //默认不超过16个字符,初始化字符串容量100
StringBuilder stringBuilder=new StringBuilder("abc");
stringBuilder.append("StringBuffer");
stringBuilder.append(1);
stringBuilder.append(true);
System.out.println(stringBuilder.length());
System.out.println(stringBuilder.capacity());
stringBuilder.insert(5,"DemoExcemple");
System.out.println(stringBuilder.toString());
stringBuilder.replace(5,7,"Rading PostDemo");
}
}
Java高级特性-String、StringBuffer和StringBuilder的更多相关文章
- JAVA高级特性--String/StringBuffer/Builder
String String对象一旦创建就不能改变 是常量 需要进行大量字符串操作应采用StringBuffer/StringBuilder 最终结果转换成String对象 StringBuffer ...
- Java String, StringBuffer和StringBuilder实例
1- 分层继承2- 可变和不可变的概念3- String3.1- 字符串是一个非常特殊的类3.2- String 字面值 vs. String对象3.3- String的方法3.3.1- length ...
- Android/Java 中的 String, StringBuffer, StringBuilder的区别和使用
Android 中的 String, StringBuffer 和 StringBuilder 是移动手机开发中经常使用到的字符串类.做为基础知识是必须要理解的,这里做一些总结. A.区别 可以从以下 ...
- String, StringBuffer and StringBuilder
一 String 概述: String 被声明为 final,因此它不可被继承. 在 Java 8 中,String 内部使用 char 数组存储数据. public final class Stri ...
- paip。java 高级特性 类默认方法,匿名方法+多方法连续调用, 常量类型
paip.java 高级特性 类默认方法,匿名方法+多方法连续调用, 常量类型 作者Attilax 艾龙, EMAIL:1466519819@qq.com 来源:attilax的专栏 地址:http ...
- String,StringBuffer与StringBuilder
1. String,StringBuffer与StringBuilder的区别 String:存储在常量池中:是不可变的字符序列,任何对String值的改变都会引发新的String对象的生成,因此执行 ...
- java高级特性增强
第4天 java高级特性增强 今天内容安排: 1.掌握多线程 2.掌握并发包下的队列 3.了解JMS 4.掌握JVM技术 5.掌握反射和动态代理 java多线程增强 .1. java多线程基本知识 . ...
- String,StringBuffer和StringBuilder
String,StringBuffer和StringBuilder分别应该在什么情况下使用? String 是Java的字符串类,其实质上也是用Char类型存储的,但是除了hash属性,其他的属性都声 ...
- Java高级特性——反射机制(第二篇)
在Java高级特性——反射机制(第一篇)中,写了很多反射的实例,可能对于Class的了解还是有点迷糊,那么我们试着从内存角度去分析一下. Java内存 从上图可以看出,Java将内存分为堆.栈.方法区 ...
随机推荐
- python-常见数据类型及其方法
常见数据类型及其方法 1.None: 表示空(无任何功能,专门用于提供空值) 2.整形(int) 3.布尔类型(bool) 只有两个结果:True/False: 0/''/[]/()/{}/set() ...
- Flink RichSourceFunction应用,读关系型数据(mysql)数据写入关系型数据库(mysql)
1. 写在前面 Flink被誉为第四代大数据计算引擎组件,即可以用作基于离线分布式计算,也可以应用于实时计算.Flink的核心是转化为流进行计算.Flink三个核心:Source,Transforma ...
- Python数据可视化之Matplotlib实现各种图表
数据分析就是将数据以各种图表的形式展现给领导,供领导做决策用,因此熟练掌握饼图.柱状图.线图等图表制作是一个数据分析师必备的技能.Python有两个比较出色的图表制作框架,分别是Matplotlib和 ...
- 玩转GET 和 POST
HTTP 基本概念 HTTP Request Methods GET.POST 专业名称是 HTTP Request Methods.但 HTTP Request Methods 不只是 GET 和 ...
- (二)shell中的变量
1.常用系统变量 $HOME.$PWD.$SHELL.$USER等 2.自定义变量 基本语法: (1)定量变量:变量=值 (2)撤销变量:unset 变量 (3)声明静态变量:readonly变量 注 ...
- redis与memacache的区别(转)
redis和memecache的不同在于:1.存储方式:memecache 把数据全部存在内存之中,断电后会挂掉,数据不能超过内存大小redis有部份存在硬盘上,这样能保证数据的持久性.2.数据支持类 ...
- Linux-day2-pdf课件
1.Linux文件属性和权限 2.Linux重定向 3.Linux文件查找 4.Linux压缩打包 5.课堂作业 权限相关作业: 题目创建用户carol,ivy,jenny,kevin,alice创建 ...
- VS2015|Visual Studio Enterprise 2015简体中文版(企业版)
Microsoft Visual Studio(简称VS)是美国微软公司的开发工具包系列产品.Visual Studio 2015 是一个丰富的集成开发环境,可用于创建出色的 Windows.Andr ...
- MDK的一些小应用
一:MDK生成bin文件 Options(魔术棒) -> User -> After Build/rebuild -> Run#1(前边打钩) (后边的方框输入一段内容) ...
- java自动化-关键字驱动在junit接口自动化的应用
本文是继承上文的基础上进行的讨论,建议读者先阅读http://www.cnblogs.com/xuezhezlr/p/9097137.html和https://www.cnblogs.com/xuez ...