一. 普通的字符串对象( String ):
1. 字符串是一个常量,它们的值在创建之后便不能修改了,将其定义为常量目的是为了重复使用。字符串本质上是一个字符数组。
2. 字符串类常用的构造方法:String( ):初始化一个新的字符串对象,使其表示一个空字符序列。
String( byte[ ] bytes ):通过使用平台的默认字符集解码指定的 byte 数组,构造一个新的 String
。
String( byte[ ] bytes,Charset charset ):通过指定的charset解码指定的 byte 数组,构造一个新的String。
3. 字符串类的常用方法:int length( ):返回字符串的长度。
String trim( ):返回字符串的副本,忽略前导空白和尾部空白。
boolean equals( Object anObject ):将此字符串和另一个字符串比较内容是否相等。
boolean equalsIgnoreCase( String anotherString ):将此字符串和另一个字符串比较内容是否相等,不考虑大小写。
String toUpperCase( ):将字符串的字符全部转换成大写字母,并返回。
String toLowerCase( ):将字符串的字符全部转换成小写字母,并返回。
int compareTo( String anthorString ):按字典顺序比较两个字符串,返回一个int类型数据。如果返回值大于零,则表示此字符串比指定字符串大;如果返回值等于零,则表示此字符串与指定字符串相等;如果返回值小于零,则表示此字符串比指定字符串小。
char charAt( int index ):返回字符串中指定索引处的字符。
String subString(int beginIndex):截取字符串中从beginIndex位置到字符串末尾的子字符串,并返回。
String subString(int beginIndex,int endIndex ):截取字符串中从beginIndex位置到endIndex位置的子字符串,并返回。
int indexOf( int ch ):返回指定字符在字符串中第一次出现的位置索引;如果字符串中没有指定字符,则返回-1。
int lastIndexOf( int ch ):返回指定字符在字符串中最后一次出现的位置索引;如果字符串中没有指定字符,则返回-1。
int indexOf( String str ):返回指定字符串在此字符串中第一次出现的位置索引;如果字符串中没有指定字符串,则返回-1。
int lastIndexOf( String str ):返回指定字符串在字符串中最后一次出现的位置索引;如果字符串中没有指定字符串,则返回-1。
int indexOf( int ch,int fromIndex ):返回指定字符从此字符串fromIndex索引处到此字符串末尾中第一次出现的位置索引;如果字符串中没有指定字符,则返回-1。
int indexOf( String str,int fromIndex ):返回指定字符串从此字符串fromIndex索引处到此字符串末尾中第一次出现的位置索引;如果字符串中没有指定字符串,则返回-1。
boolean contains( charSequence s ):判断此字符串中是否包含指定字符串( char值序列 )。
boolean endsWith( String suffix ):判断此字符串是否以指定的字符串后缀结束。
boolean startsWith( String prefix ):判断此字符串是否以指定的字符串前缀开始。
String concat( String str ):将指定字符串连接到此字符串末尾。
String[ ] split( String regex ):将字符串以指定字符串( 正则表达式 )regex分割,返回一个分割后的字符串数组。注意:如果整个字符串中没有指定的分割符,则将整个字符串放在字符串数组的第一个位置。
String replace( char ordChar,char newChar ):将字符串中的所有ordChar字符全部替换成newChar字符,并返回替换后的新字符串。
String replace( String ordString,String newString ):将字符串中的所有ordString字符串全部替换成newString字符串,并返回替换后的新字符串。
String replaceFirst( String ordString,String newString ):将字符串中第一个ordString字符串替换成newString字符串,并返回替换后的新字符串。
static String valueOf( boolean bool ):将指定boolean类型的数据转换成字符串的形式,并返回。
static String valueOf( boolean bool ):将指定boolean类型的数据转换成字符串的形式,并返回。
static String valueOf( char c ):将指定char类型的数据转换成字符串的形式,并返回。
static String valueOf( float f ):将指定float类型的数据转换成字符串的形式,并返回。
static String valueOf( double d ):将指定double类型的数据转换成字符串的形式,并返回。
static String valueOf( long l ):将指定long类型的数据转换成字符串的形式,并返回。
static String valueOf( int i ):将指定int类型的数据转换成字符串的形式,并返回。
static String valueOf( Object obj ):将指定Object类型的数据转换成字符串的形式,并返回。
static String valueOf( char[ ] data ):将指定char类型的数组转换成字符串的形式,并返回。
4. 字符串的不可变性( 地址的引用不变 ):字符串对象一旦被创建,则不能再修改,是不可变的。所谓的修改是创建了新的对象,所指向的内存空间不变。
二. 可变长的字符串对象( StringBuilder,StringBuffer ):
1. 可变的字符串( StringBuilder和StringBuffer ):String对象一旦被创建,则不能再修改。而通过StringBuilder或StringBuffer创建出的字符串对象是可以改变的。StringBuilder和StringBuffer本质上也是一个字符数组。
2. 可变的字符串常用构造方法:1>. StringBuilder strBd = new StringBuilder( String str );创建一个指定字符串的StringBuilder对象。
2>. StringBuffer strBf = new StringBuffer( String str );创建一个指定字符串的StringBuffer对象。
3. 可变的字符串常用方法:int length( ):返回此字符串的长度。
StringBuilder / StringBuffer append( String str ):在此字符串后追加指定字符串,并返回新的字符串。
StringBuilder / StringBuffer delete( int start,int end ):删除此字符串中指定范围的子字符串,并返回删除后的字符串。
StringBuilder / StringBuffer deleteCharAt( int index ):删除此字符串中指定位置的字符,并返回删除后的字符串。
char charAt( int index ):返回该字符串中指定索引处的字符。
int indexOf( String str ):返回该字符串中指定子字符串第一次出现的位置。
int lastIndexOf( String str ):返回该字符串中指定子字符串最后一次出现的位置。
StringBuilder / StringBuffer insert( int offest,String str ):在指定位置offest处加入新的字符串str,并返回新的字符串。
StringBuilder / StringBuffer replace( int start,int end,String str ):将该字符串中从start位置到end位置的子字符串替换成新的字符串str,并返回替换后的字符串。
StringBuilder / StringBuffer reverse( ):将字符串序列进行反转,并返回。
String subString( int start ):返回一个从start开始到该字符串末尾的子字符串( 字符串的截取 )。
String subString( int start,int end ):返回一个从start开始到end结束的子字符串( 字符串的截取 )。
String toString( ):将StringBuilder对象或StringBuilder对象转换成String对象。
注意:可变的字符串中没有equals( ),toUpperCase( ),toLowerCase( ),startsWith( ),endsWith( ),contains( ),compareTo( ),split( ),trim( ),valueOf( )等方法。
4>. 可变字符串和String类型的转换:1>. StringBuilder或StringBuilder转换成String类型:调用StringBuilder或StringBuilder的toString( )方法即可。
2>. String类型转换成StringBuilder或StringBuilder:调用StringBuilder或StringBuilder的构造方法即可。
5>. StringBuilder和StringBuilder的区别:1>. StringBuilder不是线程安全的,但是其效率较高。
2>. StringBuffer是线程安全的,但是其效率较低。