String,StringBuffer , StringBuilder使用和区别

String

  • String是一个类,专门用来存储字符串!
  • String是不可变的字符串!
  • 如果要更改string对象中的值,每次修改都会产生全新的对象!
  • String实质是一个char类型的数组!

 String构造方法

  • String()  空对象
  • String(byte[] bytes)   --> 将byte类型数组转成字符串
  • String(byte[] bytes, String charsetName)  --> 设置编码格式,第二个参数:正确的编码格式(例如:GBK/UTF-8/GB2312)
  • String(byte[] bytes, int offset, int length) --> 从offser索引开始,截取length长度的大小组成新的字符串
  • String(char[] value) --> 将char类型的数组转成字符串
  • String(char[] value, int offset, int count) --> 在char数组中,从offset索引开始,截取count大小组成新的字符串
  • String(String original)  --> 通过字符串创建对象
  • String(StringBuffer buffer) --> 将可变字符串转成不可变字符串
  • String(StringBuilder builder) 

 常用方法:

 比较判断方法:

int compareTo(String anotherString)  根据ASCII码比较字符串anotherString和当前字符串的大小,返回结果:正数,负数,0.可查看源码仔细了解

boolean startsWith(String preflx)   判断当前字符串中是否以字符串prefl先开头

boolean endsWith(String sufflx)    判断当前字符串中是否以字符串sufflx为后缀

字符串搜索:

int indexOf(int ch)  搜索字符ch在当前字符串第一次出现的索引,没有返回-1

int indexOf(String str)    搜索字符串str在当前字符串第一次出现的索引,没有返回-1

int lastIndexOf(int ch)  搜索字符ch在当前字符串最后一次出现的索引,没有返回-1

int lastIndexOf(String str)    搜索字符串str在当前字符串最后一次出现的索引,没有返回-1

 提取字符串:

char charAt(int index)  用于从指定位置提取单个字符,索引是index ,必须为非负

String substring(int index)  用于提取从index指定的位置开始的字符串

String substring(int begin , int end) 用于提取begin和end位置之间的字符串部分,不包括end这个索引

String concat(String str) 用于连接两个字符串,并且新建一个字符串对象;

String replace(char old , char new)  将调用字符串中出现的old指定的字符全部替换为new指定的字符

replaceAll(String regex , String replacement ) 用于将调用字符串中出现的 regex全部替换为 replacement

String trim()  用于返回一个前后不含任何空格的调用字符串的副本

String[] split(String regex)  以某个字符串regex对字符串进行分割,返回数组

大小写转换

String toUpperCase()  返回当前字符串全大写的形式

String toLowerCase()  返回当前字符串全小写的形式

数据格式转化

 

StringBuffer

  1. StringBuffer类用于表示可以修改的字符串;
  2. 使用+运算符的字符串将自动创建字符串缓冲对象;
  3. 在Java中一旦创建了字符串就不能直接更改,这就是字符串String的不变性;而StringBuffer类正是针对此问题而提供的字符可变序列;StringBuffer与String是同等的类,唯一区别是可以进行更改。

以下是StringBuffer类的构造方法有4种重载方式,以下是常用的几个:

 常用方法

StringBuilder

  1. JDK1.5以后,提供了一个新的字符缓冲区:StringBuilder。
  2. 提供和StringBuffer相似的API ,非线程安全

区别

  • String:不可变的字符串! 只要字符串不需要修改使用String!
  • StringBuffer:可变字符串,多线程!保证线程安全!
  • StringBuilder:可变字符串,不能保证线程安全! 在单线程使用!
  • 修改的效率:StringBuilder  >  StringBuffer  > String
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值