Java基础_常用类之字符串类

常用类

字符串相关类
  1. String——不可变字符串序列
  2. StringBuffer——可变字符序列,线程安全,效率低
  3. StringBuilder——可变字符序列,线程不安全,效率高
1) String

字符串声明

1、String stringName=“”;

因为字符串使用的比较多所以可以用字面量的方式声明,直接指向常量池的字符序列。所以用这种方式赋值两个字符串用==比较会是相等的
在这里插入图片描述

2、使用构造方法创建
String stringName = new String(无参或有参数);

  • String() ——创建一个空的字符串对象。
  • String(String str);——创建一个str的拷贝对象。(不是同个对象)
  • String(char[] value);——传入一个char数组,拼接成字符串。
  • String(char[] c,int positon,int count);——传入数组。并且指定起始位置和读取长度,拼接成字符串
String str = new String(a,1,2); 
表示从a数组的第二个字符开始,取2个字符。
  • String(byte[] value);——传入一个byte二进制数组,转译成字符串。

  • String(byte[] value,int position,int count);——类似char的方式。

  • String(byte[] value,int position,int count,String charset);——可以指定字符集进行解码

     用什么进行编码就必须用那种编码格式进行解码,java中输入一个字符即已经转换成指定格
     式的二进制。因此同一个中文字,gbk和utf-8所存储的btye[]不同。
    

常用方法

  • public char charAt(int index);

     返回索引处的字符。
    
str = "dafafdaf";
char ch = str.charAt(1);  //ch结果是a
  • public int length();

     返回字符串的长度
    
  • public int indexOf(string str);

     查找一段字符串在原字符串中出现的最近的索引下标,找到返回下标,没找到返回-1
     有重载方法,参数为2个时,后一个参数可指定查找的起始位置。
    
str = "dafafdaf";
int index1 = str.indexOf("dd");//返回-1
int index1 = str.indexOf("da");//返回0
int index1 = str.indexOf("da",2);//从第二个位置开始查找 包含第二个位置
  • public int lastIndexOf(String str);

     与上述方法类似,只是从后往前找。
    
  • public boolean equals(String str);

     比较字符串的值是否相同。重写了Object的toString方法
    
  • public boolean equalsIgnoreCase(String otherString)

     比较字符串值是否相同,并且忽略大小写。
    
  • public String replace(char oldChar,char newChar);

     在整个字符串中,使用新的字符代替老的字符,并返回字符串。不改变原字符串
    
str = "dafd_dafda";
String newStr = str.replace('d', '@');//结果为@af@_@af@a
  • public boolean startsWith(String str); 和endsWith(String str);

     判断字符串是否以str开头/结尾
    
str = "dafd_dafda";
boolean bool= str.startsWith("da"); //返回true
bool = str.endsWith("f");//返回false
  • public String toUpperCase() 和 toLowerCase();

    返回一个源字符串转成大写/小写的字符串。
    
  • public String substring(int 起始位置,int 结束位置);

     参数如果只有起始位置,那么默认结束位置为最末尾。截取部分字符串返回。**左闭右开**
     如果起始位置小于结束位置,则报错。如果等于则相当于没有。
    
  • public String[] split(String str);

     参数可以传正则,根据参数来进行分割字符串。参数字符不包含进去。
    
str = "dafd_dafda";
String []newStrs = str.split("af");
//返回[d, d_d, da]
  • public String tirm();

     返回该字符串去掉头尾的空格。
    
  • public static String valueOf(char data[])

     String类中提供了String valueOf()方法,用作基本类型转换为字符串类型。
    
StringBuffer和StringBuilder

这两个类类似,用StringBuilder比较多,因为高效。StringBuffer中每个方法都加了synchronized 关键字。安全性高但是同一时刻只有一个线程能操作。所以效率比较低。
以下只用一类做说明。
构造器
StringBuilder()——空构造默认创建16个长度的char数组
StringBuilder(int capacity)——指定创建的容量。
StringBuilder(String str)——添加字符串到对象中,并且容量是字符串长度+16

方法
1、public StringBuilder append(String str)

最加字符串。也可以传入object的类,但必须实现CharSequence接口,一般只做传入String字符。
返回this。就是自己本身。

2、public StringBuilder reverse()

反转字符串

3、public StringBuilder delete(int start, int end)

删除字符串,指定起始位置和结束位置 **左闭右开**结构。

4、public StringBuilder replace(int start, int end, String str)

替换字符串,指定起始位置,结束位置,和替换的字符。**左闭右开**结构。

5、public StringBuilder insert(int offset, String str)

插入字符串。指定起始位置,在起始位置之前插入,和要插入的字符。	
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值