String类
字符串是一个特殊的对象
字符串一旦初始化就不可以被改变
String str=”ABC”;
String str = new String(“ABC”);
前者只存在一个对象
后者存在两个对象,new、“ABC”
equals在String类中是对比内容的,因为String类复写了Object类的equals方法。
S1=”abc”;
S2=”abc”;
if(s1==s2) :结果返回true,因为字符串是放在内存常量池中,当第2个S2指向“abc”时,会在常量池里查找有没有存丰的,如果有直接拿过来用。
String类中的方法
获取
length():长度
char charAt(int index):获取某一位置上的字符
int indexOf(int ch):根据字符获取该字符在字符串出现第一次的位置
int indexOf(int ch,intfromIndex):从指定的位置开始查看字符在字符串出现的位置
int lastIndexOf(int ch):反向查找字符位置
int lastIndexOf(int ch,int fromIndex):返回指定字符在此字符串中最后一次出现处的索引,从指定的索引处开始进行反向搜索。
判断
boolean contains(str):判断字符串是否包含某一字串
boolean isEmpty():判断字符串是否有内容
boolean startsWith(str):判断字符串是否是以指定内容开头
boolean endsWith(str):判断字符串是否是以指定内容结束
转换
将字符数组转换成字符串
在String构造函数中:String( char[] )
String( char[ ] , offset , count ) 截取数组的一部分转为字符串
静态方法: static String copyValueOf( char[ ] );
static String copyValueOf( char[ ] , offset ,count );
将字符串转换为数组:char[] toCharArray();
将字节数组转换为字符串:String( byte[ ] );
将字符串转换成字符数组:byte[ ] getBytes( );
将基本数据类型转换为字符串:valueOf( );
替换
String replace( oldchar ,newchar ):替换字符、字符串
切割
String[ ] split( regex )
子串,获取字符串中的一部分
String subString( begin )
String subString( begin , end ) //包含开头,不包含结尾
转换
将字符串转换为大写或小写
toUpperCase( ) toLowerCase()
将字符串两端的多个空格去除:trim( )
对两个字符串进行自然顺序的比较:int compareto( String )
三. StringBuffer 字符串容器
三个特点:
长度可变化
可以操作多个数据类型
最终以toString方法变成字符串
字符串的组成原理就是通过该类实现的。
StringBuffer可以对字符串内容进行增删。
StringBuffer是一个容器
很多方法与String相同
StringBuffer的方法
存储
StringBuffer append( ):指定数据作为参数添加到已有的数据结尾处
StringBuffer insert(index, 内容 ):指定位置插入内容
删除
StringBuffer delete(start , end )
StringBuffer deleteCharAt(index ) 删除指定位置的字符
修改
StringBuffer replace(start , end , String )
void setCharAt(index , char )
查询
反转
StringBuffer reverse( );
将缓冲区的数据存到指定的数组的指定位置
void getChars( 字符串起始位置 , 字符串终止位置 , char型的数组 , 复制到数组元素开始处 )
StringBuilder
JDK1.5以后出来的
StringBuilder是线程不同步
StringBuffer 是线程同步
基本数据类型对象包装类
对应表
byte Byte
stort Stort
int Integer
long Long
boolean Boolean
float Float
double Double
char Character
基本数据类型转为字符串:toString( );
字符串转为基本数据类型:parseInt( ):eg:xxx a= xxx.parseXxx( String )
Integer x=4; //自动装箱
x=x+2; //x进行自动拆箱,变成int型,运算后再装箱
注意:在使用时,Integer x=null;上面的代码会出现NullPointerException异常