Java高级特性-String、StringBuffer和StringBuilder

  1. String

Java语言中的字符串值都属于String类,虽然有其他方法表示字符串(如字符串数组),但Java一般使用String类作为字符串的标准格式,Java编译器将字符串作为String对象,String类是字符串常量,是不可更改的常量。

String s1="abc";

String s2=new String "abc";

虽然内容相同但是new后其值就不同了

String对象一旦被创建就不能改变(与常量一样),如果需要进行大量字符串的修改操作,应该使用StringBuffy或者StringBuilder类或者字符串数组,最终结果可以转换为String对象。

  1. StringBuffer

String和StringBuffer他们都可以存储和操作字符串,即包含多个字符的字符串数据。而StringBuffer是字符串变量,它的对象是可以扩充和修改的。

StringBuffer类的构造函数

public StringBuffer()

创建一个空的StringBuffer类的对象。注意:如果参数length小于0,将触发NegativeArraySizeException异常,

public StringBuffer( int length )

1.StringBuffer线程安全的可变字符串序列。

2.一个类似于String的字符串缓冲区,通过某些方法的调用可以改变该序列的长度和内容。

3.每个字符串缓冲区都有一定的容量,只要字符串缓冲区所包含的字符串序列的长度没有超此容量,就无需非配新的内部管冲区数组。

4.如果内部缓冲区溢出,则此容量自动增大。

  1. 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的更多相关文章

  1. JAVA高级特性--String/StringBuffer/Builder

    String String对象一旦创建就不能改变 是常量 需要进行大量字符串操作应采用StringBuffer/StringBuilder  最终结果转换成String对象 StringBuffer ...

  2. Java String, StringBuffer和StringBuilder实例

    1- 分层继承2- 可变和不可变的概念3- String3.1- 字符串是一个非常特殊的类3.2- String 字面值 vs. String对象3.3- String的方法3.3.1- length ...

  3. Android/Java 中的 String, StringBuffer, StringBuilder的区别和使用

    Android 中的 String, StringBuffer 和 StringBuilder 是移动手机开发中经常使用到的字符串类.做为基础知识是必须要理解的,这里做一些总结. A.区别 可以从以下 ...

  4. String, StringBuffer and StringBuilder

    一 String 概述: String 被声明为 final,因此它不可被继承. 在 Java 8 中,String 内部使用 char 数组存储数据. public final class Stri ...

  5. paip。java 高级特性 类默认方法,匿名方法+多方法连续调用, 常量类型

    paip.java 高级特性 类默认方法,匿名方法+多方法连续调用, 常量类型 作者Attilax 艾龙,  EMAIL:1466519819@qq.com 来源:attilax的专栏 地址:http ...

  6. String,StringBuffer与StringBuilder

    1. String,StringBuffer与StringBuilder的区别 String:存储在常量池中:是不可变的字符序列,任何对String值的改变都会引发新的String对象的生成,因此执行 ...

  7. java高级特性增强

    第4天 java高级特性增强 今天内容安排: 1.掌握多线程 2.掌握并发包下的队列 3.了解JMS 4.掌握JVM技术 5.掌握反射和动态代理 java多线程增强 .1. java多线程基本知识 . ...

  8. String,StringBuffer和StringBuilder

    String,StringBuffer和StringBuilder分别应该在什么情况下使用? String 是Java的字符串类,其实质上也是用Char类型存储的,但是除了hash属性,其他的属性都声 ...

  9. Java高级特性——反射机制(第二篇)

    在Java高级特性——反射机制(第一篇)中,写了很多反射的实例,可能对于Class的了解还是有点迷糊,那么我们试着从内存角度去分析一下. Java内存 从上图可以看出,Java将内存分为堆.栈.方法区 ...

随机推荐

  1. python-常见数据类型及其方法

    常见数据类型及其方法 1.None: 表示空(无任何功能,专门用于提供空值) 2.整形(int) 3.布尔类型(bool) 只有两个结果:True/False: 0/''/[]/()/{}/set() ...

  2. Flink RichSourceFunction应用,读关系型数据(mysql)数据写入关系型数据库(mysql)

    1. 写在前面 Flink被誉为第四代大数据计算引擎组件,即可以用作基于离线分布式计算,也可以应用于实时计算.Flink的核心是转化为流进行计算.Flink三个核心:Source,Transforma ...

  3. Python数据可视化之Matplotlib实现各种图表

    数据分析就是将数据以各种图表的形式展现给领导,供领导做决策用,因此熟练掌握饼图.柱状图.线图等图表制作是一个数据分析师必备的技能.Python有两个比较出色的图表制作框架,分别是Matplotlib和 ...

  4. 玩转GET 和 POST

    HTTP 基本概念 HTTP Request Methods GET.POST 专业名称是 HTTP Request Methods.但 HTTP Request Methods 不只是 GET 和 ...

  5. (二)shell中的变量

    1.常用系统变量 $HOME.$PWD.$SHELL.$USER等 2.自定义变量 基本语法: (1)定量变量:变量=值 (2)撤销变量:unset 变量 (3)声明静态变量:readonly变量 注 ...

  6. redis与memacache的区别(转)

    redis和memecache的不同在于:1.存储方式:memecache 把数据全部存在内存之中,断电后会挂掉,数据不能超过内存大小redis有部份存在硬盘上,这样能保证数据的持久性.2.数据支持类 ...

  7. Linux-day2-pdf课件

    1.Linux文件属性和权限 2.Linux重定向 3.Linux文件查找 4.Linux压缩打包 5.课堂作业 权限相关作业: 题目创建用户carol,ivy,jenny,kevin,alice创建 ...

  8. VS2015|Visual Studio Enterprise 2015简体中文版(企业版)

    Microsoft Visual Studio(简称VS)是美国微软公司的开发工具包系列产品.Visual Studio 2015 是一个丰富的集成开发环境,可用于创建出色的 Windows.Andr ...

  9. MDK的一些小应用

    一:MDK生成bin文件 Options(魔术棒)  ->  User  ->  After Build/rebuild  ->  Run#1(前边打钩) (后边的方框输入一段内容) ...

  10. java自动化-关键字驱动在junit接口自动化的应用

    本文是继承上文的基础上进行的讨论,建议读者先阅读http://www.cnblogs.com/xuezhezlr/p/9097137.html和https://www.cnblogs.com/xuez ...