——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-
String类被final修饰符所修饰,所以它没有子类。
一旦被初始化就不可以被改变。
String类复写了Object类的的equals方法,用于判断字符串的内容是否相同。
String类常见的操作有:
一、获取:
1、字符串的长度:int length( ) (注意:带括号的)
2、获取位置上的某个字符:char charAt ( int index )
3、获取字符在字符串中的位置:int indexOf ( int ch ) (注意: 返回的是第一次出现的位置) 如果查找不到,返回 -1
int indexOf ( int ch , int fromIndex ) (从指定的索引开始搜索)
int indexOf ( String str ) (查找子字符串第一次出现的位置)
int indexOf ( String str , int fromIndex ) (从指定索引开始查找)
lastIndexOf ( int ch ) (查处该字符从最右边出现的索引)
lastIndexOf (int ch , int fromIndex )
二、判断:
1、字符串中是否包含一个子串:contains ( str )
2、字符串中是否有内容:isEmpty( )
3、字符串是否以指定的内容开头:boolean startsWith ( str )
4、字符串是否心指定的内容结尾:boolean endsWith ( str )
5、字符串中内容是否相同:复写Object中的equals 方法,equals ( str )
6、忽略大小写进行判断:equalsIgnoreCase ( )
三、转换:
1、将字符数组转成字符串:通过构造函数 new String ( char [ ] )
或者字符数组的一部分: new String ( char [ ] , offset , count )
如果是返回静态字符串,copyValueOf ( char [ ] )
2、字符串转成字符数组:char [ ] toCharArray( )
3、字节数组转成字符串: new String ( byte [ ] )
new String ( byte [ ] , offset , count )
4、字符串转成字节数组:byte [ ] getByte ( )
5、将基本数据类型转成字符串:
static String valueOf ( int )
static String valueOf ( double )
注意:字符串和字节数组在转换过程中,可以指定编码表。
四、替换: String replace (oldchar , newchar )
String replace ( oldString , newString)
五、切割:String [ ] split ( regex ) regex可以是符号如逗号之类
六、获取字符串中的一部分子串:String substring ( begin ) 指定位置到结尾 String substring ( begin , end ) 这里在限定头尾范围,不包含end位置字符
七、转换、去除空格、比较:
1、将字符串转成大写或者小写:String toUpperCase ( )
String toLowerCases ( )
2、将字符串两端的多个空格支除:String trim( )
3、对两个字符串进行自然顺序的比较:
int compareTo ( String ) 返回ASCII 值差,(正数、0 或负数)
StringBuffer 是字符串缓冲区,它是一个容器
特点如下:
1、长度是可变化的;
2、可以直接操作多个数据类型
3、最终会通过 toString 方法变成字符串
一、存储:StringBuffer append( ) 添加数据到结尾处
二、删除:delete ( start , end ) 包含start , 不包含 end
deleteCharAt ( index ) 删除指定位置的字符
三、获取: char charAt ( index )
int indexOf ( )
int length ( )
String subString ( start , end )
四、修改:StringBuffer replace ( start , end , String ) 修改特定子串
void setCharAt ( int index , char ch ) 修改特定字符
五、反转:StringBuffer reverse ( )
六、 将缓冲区中的指定数据存储到字符数组中:
void getChars ( int srcBegin , int scrEnd , char [ ] , dstBegin )
StringBuilder 其实是跟 StringBuffer 差不多,它是在JDK1.5 版本后出现的
它跟StringBuffer 的区别是:StringBuffer 线程同步,而 StringBuilder 线程不同步,如果是单线程的话,建议用 StringBuilder,因为效率会高点。