String 、StringBuffer 、StringBuilder类详解

一:String类:Java API提供的 字符串处理类。

   1)字符串是由多个字符组成的一串数据
   2)字符串可以看成是字符数组
   3)构造方法
public String(String original) 把字符串数据封装成字符串对象
public String(char[] value) 把字符数组的数据封装成字符串对象
public String(char[] value,int offset,int count) 把字符数组中的一部分数据封装成字符
串对象
直接赋值也可以是一个对象 ( 定义一个字符串变量 )
注意:字符串是一种比较特殊的引用数据类型,直接输出字符串对象输出的是该对象中 的数据
4)String特点
 通过构造方法创建字符串对象
 String s = new String(“hello”);
 直接赋值创建字符串对象
String s = hello ;
*两者创建对象的区别:new的方式会在堆内存开辟一块空间存取String对象指向方法区常量池的常量。
Public class Demo02String {
Public static void main(String[] args ) {
String s1 = new String( "hello" );
String s2 = "hello" ;
System. out .println( "s1:" + s1 );
System. out .println( "s2:" + s2 );
System. out .println( "s1==s2:" +( s1 == s2 ));
String s3 = "hello" ;
System. out .println( "s1==s3:" +( s1 == s3 ));
System. out .println( "s2==s3:" +( s2 == s3 ));
}
}
*和 运算符拼接时候注意:如果一个String是由两个常量运算得到的,相当于用双引号创建出来,反之如果运算时,等号右边有一个“运算数”不为常量(即使该“运算数”是用双引号创建的常量),则得到的结果相当于new创建的一个新的String对象
String s = "a" + "b";  String t = "ab";  以上两种创建方式,完全等价
String str1 = "abc"; String str2 = "abcd"; String str3 = "abc" + "d"; String str4 = str1 + "d";
System.out.println(str2 == str3);(true ) System.out.println(str2.equals(str3));(true)       
System.out.println(str2 == str4);(false) System.out.println(str2.equals(str4));(true)

5)String常用方法
判断功能方法
boolean equals(Object obj): 比较字符串的内容是否相同
boolean equalsIgnoreCase(String str): 比较字符串的内容是否相同 , 忽略大小写
boolean startsWith(String str): 判断字符串对象是否以指定的 str 开头
boolean endsWith(String str): 判断字符串对象是否以指定的 str 结尾
获取功能方法
int length(): 获取字符串的长度,其实也就是字符个数
char charAt(int index): 获取指定索引处的字符
int indexOf(String str): 获取 str 在字符串对象中第一次出现的索引 , 没有返回 -1
String substring(int start): start 开始截取字符串到字符串结尾
String substring(int start,int end): start 开始,到 end 结束截取字符串 ; 包括 start
不包括 end
 
 
二:StringBuilder类
1)解决String方式子符串拼接时在常量池中产生过多的产量问题。
2)与String的区别:
String 的内容是固定的, StringBuilder 的内容是可变的,内存开销小,效率高。
3)常用方法:
添加功能
public StringBuilder append( 任意类型 ): 添加数据,并返回自身对象
 反转功能: 实现倒序
public StringBuilder reverse()
 
三:String、StringBuilder、StringBuffer 的区别:
  1)效率:StringBuilder > StringBuffer>String
  2) String 是被final 修饰的类,是不可变类。StringBuilder和StringBuffer有公共父类(AbstractStringBuilder),有很多从父类继承共用的方法。StringBuffer是线程安全的。
        
        
        

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值