11.1.1 认识StringBuffer类(2)
2.实例操作二:在任意位置处为StringBuffer添加内容
可以直接使用insert()方法在指定的位置上为StringBuffer添加内容,代码如下。
范例:在任意位置处为StringBuffer添加内容
- package org.lxh.demo11.stringbufferdemo;
- public class StringBufferDemo03 {
- public static void main(String[] args) {
- StringBuffer buf = new StringBuffer();
- // 声明StringBuffer对象
- buf.append("World!!");
- // 向StringBuffer中添加内容
- buf.insert(0, "Hello ") ; // 在所有内容之前添加
- System.out.println(buf);
- // 将修改后的结果输出
- buf.insert(buf.length(),"MLDN ~") ; // 在最后添加
- System.out.println(buf); // 将内容输出
- }
- }
程序运行结果:
- Hello World!!
- Hello World!!MLDN ~
3.实例操作三:字符串反转操作
在StringBuffer中专门提供了字符串反转的操作方法,所谓的字符串反转就是指将一个是"Hello"的字符串转为"olleH"。
范例:字符串反转操作
- package org.lxh.demo11.stringbufferdemo;
- public class StringBufferDemo04 {
- public static void main(String[] args) {
- StringBuffer buf = new StringBuffer();
- // 声明StringBuffer对象
- buf.append("World!!");
- // 向StringBuffer中添加内容
- buf.insert(0, "Hello ") ;
// 在所有内容之前添加- String str = buf.reverse().toString() ;
// 将内容反转后变为String类型- System.out.println(str);
// 将内容输出- }
- }
程序运行结果:
- !!dlroW olleH
以上程序通过append()和insert()方法向StringBuffer加入数据后,使用reverse()方法将所有的内容以逆序的方式输出。
U提示:字符串反转操作是一种较为常见的操作。
在字符串的操作中,反转是一种较为常见的操作,最早的字符串反转实际上是通过入栈及出栈功能完成的,关于栈(Stack)在Java类集中将为读者介绍。
4.实例操作四:替换指定范围的内容
在StringBuffer类中也存在replace()方法,使用此方法可以对指定范围的内容进行替换。
范例:替换指定范围的内容
- package org.lxh.demo11.stringbufferdemo;
- public class StringBufferDemo05 {
- public static void main(String[] args) {
- StringBuffer buf = new StringBuffer();
- // 声明StringBuffer
- 对象
- buf.append("Hello ").append("World!!");
- // 向StringBuffer中
- 添加内容
- buf.replace(6, 11, "LiXingHua");
- // 将World替换为
- LiXingHua
- System.out.println("内容替换之后的结果:"
+ buf); // 删除替换之后的内容- }
- }
程序运行结果:
- 内容替换之后的结果:Hello LiXingHua!!
在String中如果要进行替换,则使用的是replaceAll()方法,而在StringBuffer中使用的是replace()方法,这一点读者在使用时需要注意。
5.实例操作五:字符串截取
通过substring()方法可以直接从StringBuffer的指定范围中截取出内容。
范例:截取指定范围的字符串内容
- package org.lxh.demo11.stringbufferdemo;
- public class StringBufferDemo06 {
- public static void main(String[] args) {
- StringBuffer buf = new StringBuffer();
- // 声明StringBuffer对象
- buf.append("Hello ").append("World!!");
- // 向StringBuffer中添加
- 内容
- buf.replace(6, 11, "LiXingHua");
- // 将World替换为
- LiXingHua
- String str = buf.substring(6, 15);
- // 指定截取范围,并把内容转
- 化为String类型
- System.out.println("截取之后的内容:
" + str); // 将截取后的结果输出- }
- }
程序运行结果:
- 截取之后的内容:LiXingHua
6.实例操作六:删除指定范围的字符串
因为StringBuffer本身的内容是可更改的,所以也可以通过delete()方法删除指定范围的内容。
范例:从StringBuffer中删除指定范围的字符串
- package org.lxh.demo11.stringbufferdemo;
- public class StringBufferDemo07 {
- public static void main(String[] args) {
- StringBuffer buf = new StringBuffer();
- // 声明StringBuffer对象
- buf.append("Hello ").append("World!!");
- // 向StringBuffer中添加
- 内容
- buf.replace(6, 11, "LiXingHua");
- // 将World替换为
- LiXingHua
- String str = buf.delete(6, 15).toString();
// 删除指定范围的字符串- System.out.println("删除之后的内容:" + str);
// 输出删除之后的剩余内容- }
- }
程序运行结果:
- 删除之后的内容:Hello !!
7.实例操作七:查找指定的内容是否存在
通过indexOf()方法可以查找指定的内容,如果查找到了,则返回内容的位置,如果没有查找到则返回-1。
范例:查找指定的内容是否存在
- package org.lxh.demo11.stringbufferdemo;
- public class StringBufferDemo08 {
- public static void main(String[] args) {
- StringBuffer buf = new StringBuffer();
// 声明StringBuffer对象- buf.append("Hello ").append("World!!");
// 向StringBuffer中添加内容- if(buf.indexOf("Hello")==-1){
// 没有查找到则返回-1- System.out.println("没有查找到指定的内容") ;
- }else{
// 不为-1表示查找到内容- System.out.println("可以查找到指定的内容") ;
- }
- }
- }
程序运行结果:
- 可以查找到指定的内容
从以上应用中可以发现,大部分形式与String类相似。