Posted on 2008-08-13 12:53
☆ 阅读(261)
评论(0) 编辑 收藏 所属分类:
J2SM
String,StringBuffer字符串处理
首先谈谈String和StringBuffer类的区别:
一个String型变量一旦经过初始化,就不能被改变了。为什么它作为一个变量而又不能被改变呢?
其实变量只是一个代表某个内存区域的引用符号,用来访问或修改它所指向的内存空间。
在String型变量的情况下,String型变量所指向的内存空间中的内容是不能被改变的,这是Java语言规范规定的。
但是该变量可用于指向另外的内存空间。例如:
String s=new String("Hello");
s=“Hello World”; //现在s指向内存中的新位置
在实际应用中,经常会遇到对字符串内容进行动态修改。在这种情况下,String类在功能受到限制。
Java提供了StringBuffer类来实现对字符串内容进行动态修改功能。根据StringBuffer类中提供成员方法分类,
StringBuffer类主要用于完成字符串的动态添加、插入、替换等操作。
String类的主要方法:
String类提供了length( )、charAt( )、indexOf( )、lastIndexOf( )、getChars( )、getBytes( )、toCharArray( )等方法。
在这些方法中,按用途来分,可以分为字符串长度计算、字符串比较、字符串检索、字符串的截取、替换等方法
StringBuffer类的主要方法:
1) append() 该功能主要由StringBuffer类中成员方法append完成,其作用就是将一个字符添加到另一个字符串缓冲区的后面。
在应用中,如果添加字符的长度超过字符串缓冲区的的长度,则字符串缓冲区自动将长度进行扩充。
2) insert方法 字符串缓冲区StringBuffer的插入操作主要用于动态地向StringBuffer中添加字符。
3) toString() 实现字符串缓冲区与字符串之间的转换
4) charAt(int index)取得指定位置的字符。
5) getChars(int srcBegin,int srcEnd,char[] dst,int dstBegin)
赋值指定位置的字符到字符串数组dst. 无返回值。
下面的代码段为getChars方法的例子:
StringBuffer sbfSource=new StringBuffer("You are the best!");
char[] str;
sbfSource.getChars(0,2,str,0); // "Yo"
6) delete(int start,int end)
删除字符串缓冲区中起始序号为start、终止序号为end-1的字符,方法的返回类型为StringBuffer。
StringBuffer sbfSource=new StringBuffer("You are the best");
sbfSource.delete(0,3); // are the best!
7) deleteCharAt(int index)
删除字符串缓冲区中指定位置的字符,方法的返回类型为StringBuffer
8) public StringBuffer replace(int start,int end,String str)
将字符串缓冲区中起始位置为start、终止位置为end的字符替换为由字符串str指定的内容,方法返回类型为StringBuffer。
9) publuc String substring(int start,int end)
取得字符串缓冲区中起始位置为start、终止位置为end的内容,方法返回类型为String
10) publuc String substring(int start)
取得字符串缓冲区中从起始位置为start直至字符串缓冲区结束的所有字符,方法还回类型为String
11) reverse() 将字符串序列进行反转,结果为StringBuffer。
12) capacity() 用于得到目前字符串缓冲区的剩余长度,该方法的返回类型为整数。
13) public int length() 用于得到字符串缓冲区的长度。该方法的返回类型为整数。