java基础-字符串

一、String

1.final修饰,常量,长度不可以改变。不可以改变内容,但是指针可以改变

String s1 = "abc";

String s1 = "bcd";

没有错误,只是s1指向了另外一个地方,串"abc"没有改变。

2.内存

String s = "abc";//常量区

String s2 = new String("abc"); //常量区、内存区

3.==和equals()

==比较的是数值和地址

Object类的equals()默认比较的是地址,String类重写了equals方法,比较的是内容。

4.涉及到下标的方法,包含头,不包含尾

String s = "abc";

s.subString(start,end) :[  )

5.方法

(1)根据正则表达式切割split(str)

 正则表达式是一个知识点

(2)字串subString()

(3)去掉两端空格trim()

(4)比较conpareTo(str),默认的是字典顺序

(5)转换(列举自己最常用的)

 a.字符串与字符数组 String---char[]:

 String s = new String(char[]);

 char[] c = s.toCharArray();

b.字符串与字节数组 String---byte[]:

String s = new String(byte[]);

byte[] c = s.getBytes();

字符串与字节数组转换的时候可以指定编码:String s = new String(str.getBytes("GBK"),"GBK");

c.字符串与基本类型

String s = 1+""; 

int a = Integer.parseInt("1");

。。。还有很多。

6.编码/解码

String s = "abc";

byte[] c = s.getBytes() //编码

s = new String(c) //解码

 保证编码与解码使用的是一样的编码格式是一样的。默认使用的是GBK

String s = new String(str.getBytes("GBK"),"GBK");

二、StringBuffer

1.线程安全。

2.是字符串缓冲区,像名字一样。

3.可变长度,容器。常用append()添加。可以添加多种类型数据。最终可以用toString变成String。

4.很多方法与String是一样的

5.因为是线程安全的,加入了锁,就是加入了同步机制,执行慢

6.subString得到的是String,不是StringBuffer

三、StringBuilder

1.线程不安全

2.替代了StringBuffer,方法大致相同。

3.因为StringBuilder是线程不安全的,所以不用判断锁,所以执行快,效率高。


知识点:

经常做的操作是:(1)转为char数组后操作(2)toString(3)使用StringBuilder操作




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值