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将内存分为堆.栈.方法区 ...
随机推荐
- RPC远程过程调用
什么是RPC: 将一个函数运行在远程计算机上并且等待获取那里的结果,这个称作RPC: (Remote Procedure Call远程过程调用) RPC是一个计算机通信协议. rpc指的是在计算机A上 ...
- kafka原理和架构
转载自: https://blog.csdn.net/lp284558195/article/details/80297208 参考: https://blog.csdn.net/qq_2059 ...
- WPF使用总结
ListboxItemContainer样式 一般items控件的项模板 很容易 设置DataTemplate就可以了,比如listbox .但是在选中和失去焦点的时候 却是Windows自带的那种 ...
- 电梯模拟系统——BUAA OO第二单元作业总结
需求分析 官方需求 本次作业需要模拟一个多线程实时多电梯系统,从标准输入中输入请求信息,程序进行接收和处理,模拟电梯运行,将必要的运行信息通过输出接口进行输出. 本次作业电梯系统具有的功能为:上下行, ...
- c# asp.net mvc使用斑马GK888t打印机打印标签
前言 c#语言,asp.net mvc,南京都昌电子病历模板工具(类似word),斑马GK888t,打印手腕带和标签纸. 实现步骤为:在页面上显示一个或多个都昌模板工具,点击页面上的button,出现 ...
- 用JDBC把Excel中的数据导入到Mysql数据库中
步骤:0.在Mysql数据库中先建好table 1.从Excel表格读数据 2.用JDBC连接Mysql数据库 3.把读出的数据导入到Mysql数据库的相应表中 其中,步骤0的table我是先在Mys ...
- QT—QTextEdit控件显示日志
功能:利用QTextEdit开发一个日志显示窗口.没有太多操作,需要实现的是日志自动向上滚动,总体的日志量可以控制在x行(比如300行)以内:其他的应用功能我后面继续添加 #include <Q ...
- 【PHP版】火星坐标系 (GCJ-02) 与百度坐标系 (BD-09ll)转换算法
首先感谢java版作者@宋宋宋伟,java版我是看http://blog.csdn.net/coolypf/article/details/8569813 然后根据java代码修改成了php代码. & ...
- Mac上常用工具总结
iOS开发辅助工具 Reveal :Xcode辅助界面调试工具 官网地址:https://revealapp.com/download/ 图标: SimPholders : 快速打开模拟器中的应用程序 ...
- vue-router路由学习总结
vue路由 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF ...