没有合适的资源?快使用搜索试试~ 我知道了~
java基础知识总结.doc
资源推荐
资源详情
资源评论
.
.
. .word..
1.JAVA 的 StringBuffer 类
StringBuffer 类和 String 一样,也用来代表字符串,只是由于 StringBuffer
的内部实现方式和 String 不同,所以 StringBuffer 在进展字符串处理时,不生
成新的对象,在内存使用上要优于 String 类。 所以在实际使用时,
如果经常需要对一个字符串进展修改,例如插入、删除等操作,使用
StringBuffer 要更加适合一些。
在 StringBuffer 类中存在很多和 String 类一样的方法,这些方法在功
能上和 String 类中的功能是完全一样的。
但是有一个最显著的区别在于,对于 StringBuffer 对象的每次修改都会改变对
象自身,这点是和 String 类最大的区别。
另外由于 StringBuffer 是线程平安的,关于线程的概念后续有专门的
章节进展介绍,所以在多线程程序中也可以很方便的进展使用,但是程序的
执行效率相对来说就要稍微慢一些。
1、StringBuffer 对象的初始化
StringBuffer 对象的初始化不像 String 类的初始化一样,Java 提供的有特殊的
语法,而通常情况下一般使用构造方法进展初始化。
例如:
StringBuffer s = new StringBuffer();
这样初始化出的 StringBuffer 对象是一个空的对象。
如果需要创立带有内容的 StringBuffer 对象,那么可以使用:
StringBuffer s = new StringBuffer(“abc〞);
这样初始化出的 StringBuffer 对象的内容就是字符串〞abc〞。
.
.
. .word..
需要注意的是,StringBuffer 和 String 属于不同的类型,也不能直接进展强制
类型转换,下面的代码都是错误的:
StringBuffer s = “abc〞; //赋值类型不匹配
StringBuffer s = (StringBuffer)〞abc〞; //不存在继承关系,无法进
展强转
StringBuffer 对象和 String 对象之间的互转的代码如下:
String s = “abc〞;
StringBuffer sb1 = new StringBuffer(“123〞);
StringBuffer sb2 = new StringBuffer(s); //String 转换为 StringBuffer
String s1 = sb1.toString(); //StringBuffer 转换为 String
2、StringBuffer 的常用方法
StringBuffer 类中的方法主要偏重于对于字符串的变化,例如追加、插入和删
除等,这个也是 StringBuffer 和 String 类的主要区别。
a、append 方法
public StringBuffer append(boolean b)
该方法的作用是追加内容到当前 StringBuffer 对象的末尾,类似于字符串的连
接。调用该方法以后,StringBuffer 对象的内容也发生改变,例如:
StringBuffer sb = new StringBuffer(“abc〞);
sb.append(true);
那么对象 sb 的值将变成〞abctrue〞。
使用该方法进展字符串的连接,将比 String 更加节约内容,例如应用于数据
库 SQL 语句的连接,例如:
.
.
. .word..
StringBuffer sb = new StringBuffer();
String user = “test〞;
String pwd = “123〞;
sb.append(“select * from userInfo where username=“)
.append(user)
.append(“ and pwd=〞)
.append(pwd);
这样对象 sb 的值就是字符串“select * from userInfo where username=test
and pwd=123〞。
b、deleteCharAt 方法
public StringBuffer deleteCharAt(int index)
该方法的作用是删除指定位置的字符,然后将剩余的内容形成新的字符串。
例如:
StringBuffer sb = new StringBuffer(“Test〞);
sb. deleteCharAt(1);
该代码的作用删除字符串对象 sb 中索引值为1的字符,也就是删除第二个字
符,剩余的内容组成一个新的字符串。所以对象 sb 的值变为〞Tst〞。
还存在一个功能类似的 delete 方法:
public StringBuffer delete(int start,int end)
该方法的作用是删除指定区间以内的所有字符,包含 start,不包含 end 索引
值的区间。例如:
StringBuffer sb = new StringBuffer(“TestString〞);
.
.
. .word..
sb. delete (1,4);
该代码的作用是删除索引值1(包括)到索引值4(不包括)之间的所有字符,剩余
的字符形成新的字符串。那么对象 sb 的值是〞TString〞。
c、insert 方法
public StringBuffer insert(int offset, boolean b)
该方法的作用是在 StringBuffer 对象中插入内
容,然后形成新的字符串。例如:
StringBuffer sb = new
StringBuffer(“TestString〞);
sb.insert(4,false);
该例如代码的作用是在对象 sb 的索引值4的位置插入 false 值,形成新的字符
串,那么执行以后对象 sb 的值是〞TestfalseString〞。
d、reverse 方法
public StringBuffer reverse()
该方法的作用是将 StringBuffer 对象中的内容反转,然后形成新的字符串。例
如:
StringBuffer sb = new StringBuffer(“abc〞);
sb.reverse();
经过反转以后,对象 sb 中的内容将变为〞cba〞。
e、setCharAt 方法
public void setCharAt(int index, char ch)
.
.
. .word..
该方法的作用是修改对象中索引值为 index 位
置的字符为新的字符 ch。例如:
StringBuffer sb = new
StringBuffer(“abc〞);
sb.setCharAt(1,’D’);
那么对象 sb 的值将变成〞aDc〞。
f、trimToSize 方法
public void trimToSize()
该方法的作用是将 StringBuffer 对象的中存储空间缩小到和字符串长度一样
的长度,减少空间的浪费。
总之,在实际使用时,String 和 StringBuffer 各有优势和缺乏,可以
根据具体的使用环境,选择对应的类型进展使用。
2.Java 中 replace()、replaceFirst()和 replaceAll()区别
str.replace(str 中被替换的,替换后的字符)
replace 和 replaceAll 是 JAVA 中常用的替换字符的方法,它们的区别是:
1)replace 的参数是 char 和 CharSequence,即可以支持字符的替换,也支持字符串的替换
(CharSequence 即字符串序列的意思,说白了也就是字符串);
2)replaceAll 的参数是 regex,即基于规那么表达式的替换,比方,可以通过 replaceAll("\\d", "*")
把一个字符串所有的数字字符都换成星号;
一样点是都是全部替换,即把源字符串中的某一字符或字符串全部换成指定的字符或字
符串,如果只想替换第一次出现的,可以使用 replaceFirst(),这个方法也是基于规那么表达式的
替换,但与 replaceAll()不同的是,只替换第一次出现的字符串;
另外,如果 replaceAll()和 replaceFirst()所用的参数据不是基于规那么表达式的,那么与
replace()替换字符串的效果是一样的,
即这两者也支持字符串的操作;
还有一点注意:
执行了替换操作后,源字符串的内容是没有发生改变的(因为 String 类是 final 类型的不可改
写,但可以把处理得到的结果赋值).
举例如下:
剩余172页未读,继续阅读
资源评论
xinkai1688
- 粉丝: 321
- 资源: 8万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功