【JAVA总结】三大特殊类之String类

一、String类

1、实例化方法

1)传统方法:

String str = new String("Hello"); 

2)  直接赋值:

String str = "Hello";

 2、字符串相等比较(“==”和“equals”区别)

1)“==”字符串比较:

String str1 = "csdn";
String str2 = new String ("csdn");
System.out.println("str1 == str2");//"=="比较str1、str2堆内存的地址

2)equals进行字符串的比较:

若 str1 和 str2 中内容相同,则为true;否则为false。

3)"=="和equals的区别:

"=="表示进行数值比较,若比较字符串则比较的是字符串地址的数值

equals表示进行字符串内容的比较

3、String的匿名对象

String str = "Hello";

本质 : 将⼀个匿名的String类对象设置有名字,并且匿名对象保存在堆内存中。

4、实例化区别:

请解释String类中两种对象实例化的区别:

1)传统赋值(构造方法):开辟两块内存空间,其中一块为垃圾内存,不在对象池中保存,

                                             但可手工入池(public String intern())。

2)直接赋值:只开辟一块堆内存空间,该字符串对象可自动保存在对象池中以供下次使用。

5、字符串不可变更:

字符串一旦定义后就不能进行修改。因为字符串是通过字符数组来实现的,数组定义好后,长度固定,所以不可修改。

String str = "Good";
str = str + "night";
str+=" !!!"
System.out.println(str);

观察上述代码,会发现打印了"Good night !!!",原因是因为str所指向的内存地址发生了变化。

6、字符与字符串

字符串就是一个字符数组,所以在String类里面支持有字符数组转换为字符串以及字符串变为字符的操作方法;

 方法名称类型描述
1public String(char value[])构造将字符数组所有的内容变为字符串
2public String(char value[],int offset,int count)构造将字符数组的部分内容变为字符串
3public char charAt(int index)普通取得指定索引位置的字符,索引从零开始
4public char[] toCharArray()普通将字符串变为字符数组返回

7、字节与字符串

字节常用于数据传输以及编码转换的处理之中,在String中提供对字节的支持。

 方法名称类型

1public String(byte bytes[])构造将字节数组变为字符串
2public String(byte byte[],int offset,int length)构造将字节数组的部分内容变为字符串
3public byte[] getBytes()普通将字符串以字符数组的形式返回
4public byte[] getBytes(String charsetName)throws UnsupportedEncodingException普通编码转换处理

8、字符串比较

 方法名称类型描述
1public boolean equals(Object anObject)普通区分大小写的比较
2public boolean equalsIgnoreCase(String anotherString)普通不区分大小写的比较
3public int compareTo(String annotherString)普通比较两个字符串大小关系(能返回差值)

不区分大小写的比较:

String str1 = "good" ; 
String str2 = "Good" ; 
System.out.println(str1.equals(str2)); // false
System.out.println(str1.equalsIgnoreCase(str2)); // true

compareTo()方法:比较两个字符串时,基于各个字符的Unicode值进行比较(相等返回0,小于返回负数,大于返回正数)

System.out.println("A".compareTo("a"));//-32
System.out.println("a".compareTo("A"));//32
System.out.println("A".compareTo("A"));//0

9、字符串查找

可以从一个完整的字符串中判断指定内容是否存在

 方法名称类型描述
1public boolean contains(char sequence s)普通判断一个字符串是否存在
2public int indexOf(String str)普通从头开始查找指定字符串的位置查到了返回位置的开始索引,如果查不到返回-1
3public int indexOf(String str,int fromIndex)普通从指定位置开始查找子字符串的位置
4public int lastIndexOf(String str)普通由后向前查找子字符串的位置
5public int lastIndexOf(String str,int fromIndex)普通从指定位置由后向前查找
6public boolean startsWith(String prefix)普通判断是否以指定字符串开头
7public boolean startsWith(String prefix,int toffset)普通从指定位置开始判断是否以指定字符串开头
8public boolean endsWith(String suffix)普通判断是否以指定字符串结尾

10、字符串替换

使用一个指定的新的字符串替换原有字符串的数据

 方法名称类型描述
1public String replaceAll(String regex,String replacement)普通替换所有指定内容
2public String replaceFirst(String regex,String replacement)普通替换首个内容

11、字符串拆分

 方法名称类型描述
1public String [] split (String regex) 普通将字符串全部拆分
2public String [] split (String regex,int limit) 普通将字符串部分拆分,数组长度为limit极限值

12、字符串截取

 方法名称类型描述
1public String substring(int beginindex)普通从指定位置截取到结尾
2public String substring (int beginindex,int endindex)普通截取部分内容

13、其他操作方法

 方法名称类型描述
1public String trim()普通去掉字符串的左右空格,保留中间空格
2public String toUpperCace()普通字符串转大写
3public String toLowerCase()普通字符串转小写
4public native String intern()普通字符串入池操作
5public String concat(String str)普通字符串连接,等于+,不入池
6public int length()普通取得字符串长度
7public boolean isEmpty()普通判断是否为空字符串,但不是null,是长度为0

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值