java复习总结(2):String类

本文详细介绍了Java中String类的特性,包括其不可变性、常量池的使用以及字符串的创建方式。同时,讲解了String对象的常用方法,如equals()、equalsIgnoreCase()、substring()、split()等,以及字符串的转换和操作。此外,还提到了字符串底层的字符数组实现,并探讨了字符串在内存中的存储位置差异。
摘要由CSDN通过智能技术生成

String类是一个引用数据类型,所以一个字符串"abc"就是一个实例对象,可以调用相关的方法.


1, 字符串是常量,字符串的值在创建后不能被更改:

String s1 = "abc";//"abc"是对象,s1是对象名,里面存的是这个"abc"对象的地址值


2 , 因为String对象是不可变的,所以它们可以被共享。

如果是直接赋值,是来源于常量池,如果常量池有就直接引用,如果没有就会创建一个

String s1 = "abc";//"abc"是常量存储在常量池内存块,常量池没有这个常量会帮你创建,有了就使用同一个(共享)
String s2 = "abc";//String类,类型,引用数据类型
//且s1和s2的地址是一样的,因为这两者都是引用的常量池的同一个字符串,地址值相同

而如果new出两个一样的字符串结果则不同

String s3 = new String("abc");//new出来东西在堆内存,跟常量池不是同一个地方,地址值不一样
String s4 = new String("abc");//new出来东西在堆内存,跟常量池不是同一个地方,地址值不一样
//这是两个地址不同的string实例,就像我们new两个person类一样,相互没有关系,地址值不同


3 , String字符底层是靠字符数组实现的

String str = "abc";

//相当于: 
char data[] = {'a', 'b', 'c'}; 


4 , 常用方法


(1)常见构造方法

  • public String() :通过无参构造方法创建一个空字符串对象,结果跟""是一样的意思String s = “”;
  • public String(char[] value) :通过构造方法传入字符数组,把字符数组变成字符串对象
  • public String(byte[] bytes) :通过构造方法传入字节数组,把字节数组变成字符串对象


(2)常用判断方法

  • public boolean equals (Object anObject) :判断调用方法的字符串,跟传入方法的字符串对象内容是否相等,在严格区分大小写的情况下,内容相等返回true,否则返回false

  • public boolean equalsIgnoreCase (String anotherString) :判断调用方法的字符串,跟传入方法的字符串对象内容是否相等,在忽略大小写的情况下,内容相等返回true,否则返回false


(3)常用获取功能

  • public int length () :得到调用方法的字符串的长度,字符串由字符构成,即得到字符串里面字符的个数
  • public String concat (String str) :把调用方法的字符串跟传入方法的字符串,串成一个新的字符串,+
  • public char charAt (int index) :得到调用方法的字符串,传入的索引对应的字符,比如传入0索引得到第一个字符,其他以此类推
  • public int indexOf (String str) :得到传入方法的字符串,第一次出现在调用方法的字符串的位置的索引,找不到返回-1表示
  • public int lastIndexOf(String str) :得到传入方法的字符串,最后一次出现在调用方法的字符串的位置的索引,找不到返回-1表示
  • public String substring (int beginIndex) :截取字符串,从调用方法的字符串传入的开始索引一直截取到末尾,截取,从哪里开始到哪里结束,只告诉我开始索引,没有告诉我结束索引,那默认就截取到字符串的末尾
  • public String substring (int beginIndex, int endIndex) :截取字符串,从开始索引截取到结束索引-1的那一段,即含头不含尾,或者巧记为神龙见首不见尾


(4)常用转换方法

  • public char[] toCharArray () :把调用方法的字符串转换成字符数组
  • public byte[] getBytes () :把调用方法的字符串转换成字节数组
  • public String replace (CharSequence target, CharSequence replacement) :替换调用方法的字符串,用后面的东西替换字符串里面出现的前面的东西,默认替换所有,即replace sth with sth;产生新的字符串,原来的字符串没有改变,所以要定义一个新的变量接收方法的结果,CharSequence 字符序列,字符串也是字符序列


(5)常用切割方法

public String[] split(String regex) :将此字符串按照给定的regex(规则)拆分(切割)为字符串数组

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值