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将内存分为堆.栈.方法区 ...
随机推荐
- Gradle 下载的依赖包在什么位置?
Mac系统默认下载到:/Users/(用户名)/.gradle/caches/modules-2/files-2.1Windows系统默认下载到:C:\Users\(用户名)\.gradle\cach ...
- git远程删除分支但本地git branch -a仍能看到解决
git远程删除分支但本地git branch -a仍能看到解决 在gitlab页面删除分支 但是本地能可以看到 $ git branch -a br_dev br_to_delete * master ...
- js判断是微信、QQ内置浏览器打开页面
var ua = navigator.userAgent.toLowerCase(); if(ua.match(/MicroMessenger/i)=="micromessenger&quo ...
- 今天分享三种方法实现Linux系统调用,感兴趣的朋友可以参考一下
系统调用(System Call)是操作系统为在用户态运行的进程与硬件设备(如CPU.磁盘.打印机等)进行交互提供的一组接口.当用户进程需要发生系统调用时,CPU 通过软中断切换到内核态开始执行内核系 ...
- 利用JavaFx开发RIA桌面应用-在线资料
转载请注明来源-作者@loongshawn:http://blog.csdn.net/loongshawn/article/details/52805751 1.前言 虽说java已经不是主流的桌面应 ...
- Android Studio 中 Live Templates 的使用
Android Studio 中的 Live Templates 是什么? Live Templates 有什么用处? Live Templates 可以理解为:在你编码过程中,IDE自动生成的代码内 ...
- Javascript 标识符及同名标识符的优先级
一.定义 标识符(Identifier)就是一个名字,用来对变量.函数.属性.参数进行命名,或者用做某些循环语句中的跳转位置的标记. //变量 var Identifier = 123; //属性 ( ...
- Selenium 实现 Web 自动化的原理 (软件测试52讲学习笔记)
Selenium 1.0 的工作原理 Selenium 1.0,又称Selenium RC ,RC是Remote Control的缩写.Selenium RC利用的原理:JavaScript代码可以方 ...
- NOIP-Vigenère密码
题目描述 16 世纪法国外交家 Blaise de Vigenère 设计了一种多表密码加密算法―― Vigenère 密码. Vigenère 密码的加密解密算法简单易用,且破译难度比较高,曾在美国 ...
- [AtCoder3856]Ice Rink Game - 模拟
Problem Statement An adult game master and N children are playing a game on an ice rink. The game co ...