String类是不可变类,即一旦一个String对象被创建以后,包含在这个对象中的字符串序列是不可改变的,直至这个对象被销毁。
 
StringBuffer对象则代表一个字符序列可变的字符串,当一个StringBuffer被创建以后,通过StringBuffer提供的append()、insert()、reverse()、setCharAt()、setLength()等方法可以改变这个字符串对象的字符序列。一旦通过StringBuffer生成了最终想要的字符串,就可以调用它的toString()方法将其转换为一个String对象。
 
StringBuilder和StringBuffer基本相似,两个雷的构造器和方法也基本相同。不同的是,StringBuffer是线程安全的,而StringBuilder则没有实现线程安全功能,所以性能略高。因此在通常情况下,如果需要创建一个内容可变的字符串对象,则应该优先考虑使用StringBuilder类。
 
提示:
String、StringBuffer和StringBuilder都实现了CharSequence接口,因此CharSequence可认为是一个字符串的协议接口。
 
String类提供了大量构造器来创建String对象,其中如下几个有特殊用途。
◆String():创建一个包含0个字符串序列的String对象(并不是返回null)
◆String(btye[] bytes, CharSet charset):使用指定的字符集将指定的byte[]数组解码成一个新的String对象
◆String(btye[] bytes, int offset, int length):使用平台的默认字符集将指定的byte[]数组从offset开始、长度为length的子组解码成一个新的String对象
◆String(btye[] bytes, int offset, int length, String charsetName):使用平台的默认字符集将指定的byte[]数组从offset开始、长度为length的子组解码成一个新的String对象
◆String(btye[] bytes, String charsetName):使用指定的字符集将指定的byte[]数组解码成一个新的String对象
◆String(String original):根据字符串直接量来创建一个String对象。也就是说,新创建的String对象是该参数字符串的副本。
◆String(StringBuffer buffer):根据StringBuffer对象来创建对应的String对象。
◆String(StringBuilder builder):根据StringBuilder对象来创建对应的String对象。
 
String类也提供大量方法来操作字符串对象,下面详细介绍这些常用方法。
◆char charAt(int index):获取字符串中指定位置的字符。其中,参数index指的是字符串的序数,字符串的序数从0开始到length()-1。如下代码所示。
String s = new String("fkit.org");
System.out.println("s.charAt(5):"+s.charAt(5));
结果为:
s.charAt(5):o
◆int compareTo(String anotherString):比较两个字符串的大写。如果两个字符串的戏份序列相等,则返回0;不相等时,从两个字符串第0个字符开始比较,返回第一个不相等的字符差。另一种情况,较长字符串的前面部分恰好是较短的字符串,则返回它们的长度差。
String s1 = new String("abcdefghijklmn");
String s2 = new String("abcdefghij");
String s3 = new String("abcdefghijalmn");
System.out.println("s1.compareTo(s2):"+s1.compareTo(s2));//返回长度差
System.out.println("s1.compareTo(s3):"+s1.compareTo(s3));//返回'k'-'a'差
结果为:
s1.compareTo(s2):4
s1.compareTo(s3):10
◆String concat(String str):将该String对象与str连接在一起。与Java提供的字符串连接运算符"+"的功能相同。
◆boolean contentEquals(StringBuffer sb):将该String对象与StringBuffer对象sb进行比较,当它们包含的字符序列相同时返回true。
◆static String copyValueOf(char[] data):将字符数组连缀成字符串,与String(char[] content)构造器的功能相同。
◆static String conyValueOf(char[] data, int offset, int count):将char数组的子数组中的原始连缀成字符串,与String(char[] value, inoffset, int count)构造器的功能相同。
◆boolean endsWith(String suffix):返回该String对象是否以suffix结尾。
String s1 = "fkit.org";String s2 = ".org";
System.out.println("s1.endsWith(s2):"+s1.endsWith(s2));
结果为:
s1.endsWith(s2):true
◆boolean equals(Object anObject):
◆boolean equalsIgnoreCase(String str):
◆byte[] getBytes():
◆void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin):

Java笔记——String、StringBuffer和StringBuilder类的更多相关文章

  1. Java中String,StringBuffer与StringBuilder的差别

    String 字符串常量: StringBuffer 字符串变量〈缓冲区〉(线程安全): StringBuilder 字符串变量〈缓冲区〉(非线程安全): 简要的说, String 类型和 Strin ...

  2. 【Java】String,StringBuffer与StringBuilder的区别??

    String 字符串常量StringBuffer 字符串变量(线程安全)StringBuilder 字符串变量(非线程安全) 简要的说, String 类型和 StringBuffer 类型的主要性能 ...

  3. java中String,StringBuffer与StringBuilder的区别??

    本文着重介绍下,应该在何时恰当的使用string,stringbuffer,stringbuilder. 1,执行速度 StringBuilder >  StringBuffer  >  ...

  4. Java ——String 类 StringBuffer 和 StringBuilder类 随机字符

    本节重点思维导图 String 类 创建字符串 String str = "I love ai"; 在代码中遇到字符串常量时,"I love ai",编译器会使 ...

  5. 浅谈java中的String、StringBuffer、StringBuilder类的区别以及关系

    在java中最常见的使用就是对字符串的操作:首先先说一下对字符串的理解:字符串就是一连串字符序列,Java提供了String和StringBuffer两个类来封装字符串,并提供一系列方法来操作字符串对 ...

  6. JAVA String、StringBuffer、StringBuilder类解读

    JAVA String.StringBuffer.StringBuilder类解读 字符串广泛应用 在 Java 编程中,在 Java 中字符串属于对象,Java 提供了 String 类来创建和操作 ...

  7. Java的String&StringBuffer&StringBuilder

    一:String类 1.String对象的初始化 由于String对象特别用,所以在对String对象进行初始化时,Java提供了一种简化的特殊语法,格式如下: String s = "ab ...

  8. String、StringBuffer和StringBuilder类的区别

    Java提供了String.StringBuffer和StringBuilder类来封装字符串,并提供了一系列操作字符串对象的方法. 它们的相同点是都用来封装字符串:都实现了CharSequence接 ...

  9. Java StringBuffer和StringBuilder类

    Java StringBuffer和StringBuilder类 当对字符串进行修改的时候,需要使用StringBuffer和StringBuilder类. 和String类不同的是,StringBu ...

  10. Java 12 - Java StringBuffer和StringBuilder类

    Java StringBuffer和StringBuilder类 当对字符串进行修改的时候,需要使用StringBuffer和StringBuilder类. 和String类不同的是,StringBu ...

随机推荐

  1. web 开发之js---js 实现地址栏的表单提交加密编码

    以前在做嵌入式web时,曾经想过cgi加密,原来js可以直接实现,太好了,这里js在客户端实现编码和解码 一.在地址栏直接输入:javascript:str=encodeURI("笃行天下& ...

  2. 【bzoj3288】Mato矩阵

    题目大意:给定一个n阶行列式,第i行第j列为GCD(i,j),求这个行列式的值 高斯消元之后发现对角线上的东西是phi 于是线性筛出所有的欧拉函数即可 #include<algorithm> ...

  3. 【bzoj2003】[Hnoi2010]Matrix 矩阵

    首先可以知道,如果已知第一行和第一列的数,那么可以很容易的计算出其余的数.进一步的,如果笔算将每个数的表达式写出可以得出如下结论: 第i行的第j个数(i>1,j>1)只与(1,1),(i, ...

  4. Spring 之AOP 面向切面编程

    AOP相关术语: Joinpoint (连接点):所谓连接点是指那些被拦截到的点,在spring中,这些点指的是方法,因为spring 只支持方法类型的连接点. Pointcut(切入点):所谓切入点 ...

  5. HDU 5855Less Time, More profit

    Less Time, More profit Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/O ...

  6. Eclipse中执行sql脚本文件

    转自:https://blog.csdn.net/weixin_37778823/article/details/79614281 在Eclipse中导入或新建sql脚本文件(.sql文件),选择指定 ...

  7. 【149】ArcGIS Desktop 10.0 & Engine 10.0 安装及破解

    写在前面:可能会出现按照此方法无法破解的情况,那请确保您有将 ArcGIS 10.0 已经完全卸载干净,直接通过控制面板进行卸载的时候并不能将其卸载干净,需要进行更深层次的卸载,包括删除注册表,各种文 ...

  8. NetCore Netty 框架 BT.Netty.RPC 系列随讲 —(前序) REST API 与 RPC 经典网络基础服务架构

    在服务体系架构内,我们所知道的,有两种请求模型: Http 请求模型,以及 RPC 请求模型.因此,在一个互联网请求模型架构上,都是这两种的请求模型的向互组合. 下面给出两种常见的互联网经典基础架构图 ...

  9. xshell、xftp最新版下载方法

    https://www.netsarang.com/download/main.html 登录邮箱打开第一个下载地址进行下载

  10. Linux上安装禅道

    linux一键安装包内置了apache, php, mysql这些应用程序,只需要下载解压缩即可运行禅道. 从7.3版本开始,linux一键安装包分为32位和64位两个包,请大家根据操作系统的情况下载 ...