String、StringBuffer、StringBuilder

String

字符串是一个特殊的对象

字符串一旦初始化就不可以被改变

 

String str=”ABC”;

String str = new String(“ABC”);

前者只存在一个对象

后者存在两个对象,new、“ABC

 

equalsString类中是对比内容的,因为String类复写了Object类的equals方法。

 

S1=”abc”;

S2=”abc”;

if(s1==s2) :结果返回true,因为字符串是放在内存常量池中,当第2S2指向“abc”时,会在常量池里查找有没有存丰的,如果有直接拿过来用。

 

String类中的方法

    获取

     length():长度

     char charAt(int index):获取某一位置上的字符

     int indexOf(int ch):根据字符获取该字符在字符串出现第一次的位置

     int indexOf(int ch,intfromIndex):从指定的位置开始查看字符在字符串出现的位置

     int lastIndexOf(int ch):反向查找字符位置

      int lastIndexOf(int chint 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( )egxxx a= xxx.parseXxx( String )

 

Integer x=4;    //自动装箱

x=x+2;            //x进行自动拆箱,变成int型,运算后再装箱

 

注意:在使用时,Integer x=null;上面的代码会出现NullPointerException异常

你可能感兴趣的:(JAVA基础)