吃透String类

一、认识String类

1、String表示字符串类型,属于  引用数据类型 ,不属于基本数据类型。

2、在java中随便使用 双引号括起来 的都是String对象。

例如:“abc”,“2344f”,“hello world!”,这是3个String对象。

1.字符串的构建 

String 类提供的构造方式非常多,常用的就以下三种:

 二、String属于  引用数据类型

1. String 是引用类型,内部并不存储字符串本身 ,在 String 类的实现源码中,String类实例变量如下:

如上图:字符串实际是保存在char 类型数组中

具体可以看下示意图

三、字符串的比较 

1. ==比较是否引用同一个对象

注意:对于内置类型, == 比较的是变量中的值;对于引用类型 == 比较的是引用中的地址。

 对于引用类型==比较的是引用中的地址,所以s1和s2比较是false,s2与s3比也为false,而s4是s1引用的地址所赋值,因此比较为true。

2.equals方法比较

比较字符串内容就要用到equals方法。

String 类重写了父类 Object equals方法,Object中 equals 默认按照 == 比较, String 重写 equals 方法后,按照 如下规则进行比较,比如: s1.equals(s2)

 即字符串内容相同为true,不同为false。

3.compareTo与 compareToIgnoreCase

3.1int compareTo(String s) 方法: 按照字典序进行比较

equals 不同的是, equals 返回的是 boolean 类型,而 compareTo 返回的是 int 类型。具体比较方式:
1. 先按照字典次序大小比较,如果出现不等的字符,直接返回这两个字符的大小差值
2. 如果前 k 个字符相等 (k 为两个字符长度最小值 ) ,返回值两个字符串长度差值

3.2int compareToIgnoreCase(String str) 方法:

compareTo方式相同,但是忽略大小写比较

 四、字符串查找

关于String类型的一些使用方法总结:

五、StringBuilderStringBuffer

前言:字符串修改

注意:尽量避免直接对 String 类型对象进行修改,因为 String 类是不能修改的,所有的修改都会创建新对象,效率 非常低下。
public static void main ( String [] args ) {
String s = "hello" ;
s += " world" ;
System . out . println ( s ); // 输出: hello world
}
可以看待在对 String 类进行修改时,效率是非常慢的,因此:尽量避免对 String 的直接需要,如果要修改建议尽量使用StringBuffer 或者 StringBuilder

5.1 StringBuilder

由于 String 的不可更改特性,为了方便字符串的修改, Java 中又提供 StringBuilder StringBuffer 类。这两个类大部分功能是相同的,这里介绍 StringBuilder 常用的一些方法,其它需要用到了大家可参阅 StringBuilder 在线文档
StringBuilder的部分运用:
  • 6
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值