Java字符串类
1、Java中字符串类不可变长度的有String,可变长度的有StringBuffer、StringBuilder。
2、String类其实是以char数组来保存字符串的。
3、String s = “sss”; s = “aaa”;这其实并不是将对象“sss改变了,而是新创建了一个对象“aaa”并将s指向新对象。
4、比较两个字符串:equal和==的区别:
(1)Java内存空间中有堆内存和栈内存,基本数据类型和对象引用放在栈内存中,而对象本身放在堆内存中。
(2)比较引用型变量时,equal比较的是其引用指向的堆内存中存放的内容是否相等。而==比较的是栈内存中引用的值是否相等。
5、在Java开发中String类是用的最多的类之一(它的一些常用方法在下文会有介绍),StringBuilder是线程安全的,也就是StringBuilder只支持单线程,不能用于同步操作,所以速动上要更快,但也不是绝对的。StringBuffer类支持多线程。所以在对字符串操作频繁时建议使用StringBuilder,涉及到同步操作建议使用StringBuffer,使用较少的情况下建议使用String,String类在jvm虚拟机有优化(具体情况自行百度)。
6、String常用方法:
(1)char charAt(int index); 返回字符串指定索引出的字符。
(2)boolean contains(CharSequence s); 判断字符串是否包含指定字符序列。
(3)int compareTo(String anotherString); 按字典顺序比较两个字符串。
(4)boolean equals(Object obj); 将字符串与制定对象比较。
(5)static String format(String format, Object… args) 格式化字符串。
(6)int indexOf(int ch或者String str) 返回指定字符或者字符串在字符串中第一次出现的索引。
(7)boolean isEmpty() 判断字符串是否为空。
(8)int length() 返回字符串长度。
(9)String[] split(String str) 返回根据传入正则表达式拆分的字符串数组。
(10)String trim() 去掉两端空格
(11)static String valueOf(基本数据类型) 将基本数据类型转换为字符串类。