StringBuffer
来源:互联网 发布:java log4j2.xml 编辑:程序博客网 时间:2024/06/11 03:54
package cn.jason.stringbuffer.demo;
public class StringBufferDemo {
public static void main(String[] args) {
/*
* stringbuffer:字符串缓冲区 作为一个字符容器 特点:
* 1.长度可以变化
* 2.可以对内容通过指定方法进行修改
* 3.容器对象一般都会具备对容器中的元素进行操作的功能。增删查改
* 4.缓冲区中可以存储不同类型的数据。啥对象都能存
* 5.最后缓冲区存储完的数据都会变成字符串
*/
String str = "a"+4+"c";
//在内存中的过程。1.创建一个字符串缓冲区容器。2.将要组成字符串的元素先存储起来。3.最后将缓冲区填充数据变成字符串
str=new StringBuffer().append("a").append(4).toString();
//这就是String str 形成的过程
}
* stringbuffer:字符串缓冲区 作为一个字符容器 特点:
* 1.长度可以变化
* 2.可以对内容通过指定方法进行修改
* 3.容器对象一般都会具备对容器中的元素进行操作的功能。增删查改
* 4.缓冲区中可以存储不同类型的数据。啥对象都能存
* 5.最后缓冲区存储完的数据都会变成字符串
*/
String str = "a"+4+"c";
//在内存中的过程。1.创建一个字符串缓冲区容器。2.将要组成字符串的元素先存储起来。3.最后将缓冲区填充数据变成字符串
str=new StringBuffer().append("a").append(4).toString();
//这就是String str 形成的过程
}
}
package cn.jason.stringbuffer.demo;
public class StringBufferDemo2 {
public static void main(String[] args) {
/*
* StringBuffer
* 缓冲区可以对数据进行临时存储
*
* 了解缓冲区的常见方法
* 添加元素:
* StringBuffer append(各种类型的数据);追加..就是从最后添加
* StringBuffer insert(index,各种类型的数据);指定位置添加
*
*
*/
//1.创建一个缓冲区
StringBuffer sb = new StringBuffer();
//2.追加一个字符串
sb.append("abc");
System.out.println(sb);// ! pringln(),这个方法会将所有要打印的数据先转成字符串(String)再输出,
//对于对象会自动调用toString方法。
//String s = sb; 这样是错误的,因为sb是StringBuffer类型,不能自动转换
//String s = sb.toString() sb就需要toString手动转换成String类型
//3.插入一个boolean值,true
sb.insert(1, true);
System.out.println(sb);
//4.删除字符
// sb.delete(1, 4); //有关删除的方法的词汇就两个:delete,remove
//所有控制头尾角标的方法,都遵循(包含头,不包含尾)
//5.修改字符
sb.replace(1, 4, "xyxyxyxyxy");//把1~4角标的替换
System.out.println(sb);
//缓冲区设置长度,只显示缓冲区内的字符
sb.setLength(20);
//反转,颠倒
sb.reverse();
/*
* 字符串缓冲区中维护了一个“可变长度的数组”
* 解释:其实就是超出内部数组长度后,新建数组长度要是原数组的1.x倍数
* 并将原数组的数据复制到新数组中,并将新的元素也添加到新数组中
*
*/
}
* StringBuffer
* 缓冲区可以对数据进行临时存储
*
* 了解缓冲区的常见方法
* 添加元素:
* StringBuffer append(各种类型的数据);追加..就是从最后添加
* StringBuffer insert(index,各种类型的数据);指定位置添加
*
*
*/
//1.创建一个缓冲区
StringBuffer sb = new StringBuffer();
//2.追加一个字符串
sb.append("abc");
System.out.println(sb);// ! pringln(),这个方法会将所有要打印的数据先转成字符串(String)再输出,
//对于对象会自动调用toString方法。
//String s = sb; 这样是错误的,因为sb是StringBuffer类型,不能自动转换
//String s = sb.toString() sb就需要toString手动转换成String类型
//3.插入一个boolean值,true
sb.insert(1, true);
System.out.println(sb);
//4.删除字符
// sb.delete(1, 4); //有关删除的方法的词汇就两个:delete,remove
//所有控制头尾角标的方法,都遵循(包含头,不包含尾)
//5.修改字符
sb.replace(1, 4, "xyxyxyxyxy");//把1~4角标的替换
System.out.println(sb);
//缓冲区设置长度,只显示缓冲区内的字符
sb.setLength(20);
//反转,颠倒
sb.reverse();
/*
* 字符串缓冲区中维护了一个“可变长度的数组”
* 解释:其实就是超出内部数组长度后,新建数组长度要是原数组的1.x倍数
* 并将原数组的数据复制到新数组中,并将新的元素也添加到新数组中
*
*/
}
}
package cn.jason.stringbuffer.demo;
public class StringBufferDemo3 {
public static void main(String[] args) {
/*
*什么时候用字符串缓冲区
*数据很多, 个数无所谓确定,类型无所谓确定,只要最后都转成字符串。
*就使用StringBuffer这个容器。
*使用的局限性:1.必须最终转成字符串。
* 2.无法对存储进来的元素进行单独操作。因为存储进来的元素都变成字符串。
*/
StringBuffer buf1 = new StringBuffer("hello");
StringBuffer buf2 = new StringBuffer("java");
test(buf1,buf2);
System.out.println(buf1+"..."+buf2);
}
*什么时候用字符串缓冲区
*数据很多, 个数无所谓确定,类型无所谓确定,只要最后都转成字符串。
*就使用StringBuffer这个容器。
*使用的局限性:1.必须最终转成字符串。
* 2.无法对存储进来的元素进行单独操作。因为存储进来的元素都变成字符串。
*/
StringBuffer buf1 = new StringBuffer("hello");
StringBuffer buf2 = new StringBuffer("java");
test(buf1,buf2);
System.out.println(buf1+"..."+buf2);
}
private static void test(StringBuffer buf1, StringBuffer buf2) {
buf1.append(buf2); //把buf2的数据(java),追加到buf1(java)后
buf1=buf2; //把buf2的对象地址赋给buf1。(buf1指向java的地址)
//看到对象之间的运算,要判断运算的是其内部数据(比如用方法),还是控制其地址。
//就像上面的等于号,并不是赋值的意思,而是现在对象buf1指向对象buf2的地址值,对象本身不会改变
//当函数出栈之后,buf1便还是之前被buf2追加后的地址(hellojava)
System.out.println(buf1+"..."+buf2);
}
buf1.append(buf2); //把buf2的数据(java),追加到buf1(java)后
buf1=buf2; //把buf2的对象地址赋给buf1。(buf1指向java的地址)
//看到对象之间的运算,要判断运算的是其内部数据(比如用方法),还是控制其地址。
//就像上面的等于号,并不是赋值的意思,而是现在对象buf1指向对象buf2的地址值,对象本身不会改变
//当函数出栈之后,buf1便还是之前被buf2追加后的地址(hellojava)
System.out.println(buf1+"..."+buf2);
}
}
阅读全文
0 0
- StringBuffer
- StringBuffer
- StringBuffer
- StringBuffer
- StringBuffer
- StringBuffer
- StringBuffer
- StringBuffer
- StringBuffer
- StringBuffer
- StringBuffer
- StringBuffer
- StringBuffer
- StringBuffer
- StringBuffer
- StringBuffer
- StringBuffer
- StringBuffer
- 在命令行中使用wsimport命令在MyEclipse中生成webservice文件,无法生成,出现directory not found这种情况
- java获取路径问题
- Android 开源项目分类汇总
- 将博客搬至简书,两边都会同时更新
- Gym
- StringBuffer
- 利用SSH工具上传文件到CentOS 6.5
- Oracle通过Navicat建表查询时表不存在的问题解决
- Java中基础数据类型的面试相关+String类
- 探索 ConcurrentHashMap 高并发性的实现机制
- javaweb中servlet生命周期介绍
- GBDT与梯度的理解
- 在maven中启动tomcat报错java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoad
- Result map does not contain a value for java.lang.Integer