1 package cn.itcast.p2.stringbuffer.demo;
2
3 public class StringBufferDemo {
4
5 public static void main(String[] args) {
6 // TODO Auto-generated method stub
7 /*
8 * StringBuffer:就是字符串缓冲区。
9 * 用于存储数据的容器。(数组也是个容器)
10 * 特点:
11 * 1,长度是可变的。
12 * 2,可以存储不同类型数据。
13 * 3,最终要转成字符串进行使用。
14 * 4,可以对字符串修改
15 *
16 * 既然是一个容器。应该具备什么功能呢?
17 * 1,添加:
18 * StringBuffer append(data);
19 * StringBuffer insert(index,data)
20 * 2,删除:
21 * StringBuffer delete(start,end);包含头不包含尾
22 * StringBuffer deleteCharAt(int index);删除指定位置的元素
23 * 3,查找:
24 * char charAt(index);
25 * int indexOf(string);
26 * int lastIndexOf(string);
27 * 4,修改:
28 * StringBuffer replace(start,end,string)
29 * void setCharAt(index,char);
30 * 增删改查 C(create)U(update)R(read)D(delete)
31 */
32 bufferMethodDemo();
33
34 bufferMethodDemo_1();
35
36 bufferMethodDemo_2();
37
38 bufferMethodDemo_3();
39
40 bufferMethodDemo_4();
41 }
42 private static void bufferMethodDemo_4() {
43 StringBuffer sb = new StringBuffer("abce");
44
45 //sb.setLength(2);//ab
46 //sb.setLength(0);//相当于清空缓冲区
47 //sb.setLength(10);
48 System.out.println("sb:"+sb);
49 System.out.println("len:"+sb.length());
50
51 System.out.println(sb.reverse());//ecba
52 }
53 private static void bufferMethodDemo_3() {//修改
54 StringBuffer sb = new StringBuffer("abce");
55 sb.replace(1, 3, "nba");
56 sb.setCharAt(2, 'q');
57 System.out.println(sb);
58 }
59 private static void bufferMethodDemo_2() {//删除
60 StringBuffer sb = new StringBuffer("abce");
61
62 sb.delete(1, 3);
63 //清空缓冲区。
64 sb.delete(0, sb.length());
65 sb = new StringBuffer();//重新做缓冲区
66 System.out.println(sb);
67 }
68 private static void bufferMethodDemo_1() {//插入
69 StringBuffer sb = new StringBuffer("abce");
70 sb.insert(2, "qq");
71 System.out.println(sb.toString());
72
73 }
74 public static void bufferMethodDemo() {//添加
75 //创建缓冲区对象。
76 StringBuffer sb = new StringBuffer();
77
78 StringBuffer s1 = sb.append(4);
79 s1.append(false);
80 System.out.println(sb==s1);//true
81
82 s1.append("ha").append("ha");
83 System.out.println(sb);
84 s1.insert(1, "haha");
85 System.out.println(sb);
86
87 }
88 /*
89 * StringBuffer() 构造一个其中不带字符的字符串缓冲区,初始容量为16个字符
90 *
91 * StringBuffer(int capacity) 构造一个不带字符,但具有指定初始容量的字符串缓冲区。
92 *
93 * 两个的区别就是看具体适用哪个,用StringBuffer()一旦超过16 就延长不仅开辟空间又要进行运算
94 * 初始化一个指定容量的就可以避免这个情况。
95 */
96
97 }

StringBuffer类(增删改查及长度可变原理)的更多相关文章

  1. Yii 1.1.17 四、属性标签、AR类增删改查、使用上传类与扩展第三方类库

    一.属性标签与规则设置 当进入网站页面,将会读数据库返回信息到视图上.那么,现在定义模型中的属性在视图标签上的显示, 也就是模型属性到前台标签的映射 // 定义模型属性到前台标签的映射 public ...

  2. 潭州课堂25班:Ph201805201 django框架 第六课 模型类增删改查,常用 的查询矣查询条件 (课堂笔记)

    在视图函数中写入增删改查的方法 增: 在 urls 中配置路径 : 查: 1: 在后台打印数据 在模型类中添加格式化输出 : QuerySet,反回的是个对象,可以按索引聚会,用 for 循环,, 找 ...

  3. EF(Entity Framework)通用DBHelper通用类,增删改查以及列表

    其中 通用类名:DBhelper 实体类:UserInfo 1 //新增 2 DBHelper<UserInfo> dbhelper = new DBHelper<UserInfo& ...

  4. django-rest-framework框架 第三篇 之CRUD视图扩展类(增删改查的优化)

    CRUD视图扩展类 1 CreateModelMixin 2 RetrieveModelMixin 3 UpdateModelMixin 4 DestroyModelMixin <1> 创 ...

  5. EF 5.0 帮助类 增删改查

    原文地址:http://www.cnblogs.com/luomingui/p/3362813.html EF 5.0 帮助类 加入命名空间: using System; using System.D ...

  6. EntityFramework经典数据访问层基类——增删改查

    namespace StudentSys.DAL { public class BaseService<T>:IDisposable where T:BaseEntity,new() { ...

  7. php单例模式封装数据库操作类增删改查

    <?php//三私一公 单例class Db{ //数据库连接对象 private static $instance; private static $table_name; private $ ...

  8. popup的简单应用举例(具体在增删改查组件中用到)以及补充的知识点

    一.首先说一下自执行函数 1. 立即执行函数是什么?也就是匿名函数 立即执行函数就是 声明一个匿名函数 马上调用这个匿名函数 2.popup的举例 点击,弹出一个新的窗口.保存完事,页面不刷新数据就返 ...

  9. MySQL数据库学习笔记(十一)----DAO设计模式实现数据库的增删改查(进一步封装JDBC工具类)

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...

随机推荐

  1. c++设计模式概述之适配器

    类写的不规范(应该屏蔽类的拷贝构造函数和运算符=).少写点代码,缩短篇幅,重在理解. 实际中可不要这样做. 类比生活中的手机,pad等电源适配器. 简单来讲: 将原本  不匹配  的两者  变的匹配  ...

  2. C++11之重写说明符override和final

    关于 本文代码演示环境: win10 + vs2017 一个困扰 之前MFC用的多了,发现一个问题: 子类窗口的某个函数是否重载了基类的函数.解决办法是: 打开基类的代码,一个个排查. 这只是一个具体 ...

  3. Soldier and Traveling

    B. Soldier and Traveling Time Limit: 1000ms Memory Limit: 262144KB 64-bit integer IO format: %I64d   ...

  4. 深入理解Java虚拟机一:运行时数据区域

    根据<Java虚拟机规范(第2版)>的规定,Java虚拟机管理的内存包括下图几个运行时数据区域: 1.程序计数器        程序计数器(Program Counter Register ...

  5. SpringBoot集成MyBatis-Plus自定义SQL

    1.说明 本文介绍Spring Boot集成MyBatis-Plus框架后, 基于已经创建好的Spring Boot工程, 添加自定义的SQL实现复杂查询等操作. 自定义SQL主要有两种方式, 一种是 ...

  6. Ranger-Sqoop2插件实现详解

    1.组件和插件介绍 1.1.Ranger介绍 Apache Ranger能够监控和管理整个Hadoop平台的综合数据安全, 目前作为Apache Top Level Project(TLP顶级项目), ...

  7. 【Python+Django+Pytest】数据库异常pymysql.err.InterfaceError: (0, '') 解决方案

    问题背景: 接口自动化测试平台,在执行测试案例之外,还需要做以下五件事情(或步骤): 1.查询用户在数据准备中预置的测试套件层数据初始化相关sql  (setUp_class方法中) 2.查询用户在数 ...

  8. python appium使用uiselector定位时,提示 Could not parse UiSelector argument: 'XXX' is not a string

    运行自动化代码,appium返回Could not parse UiSelector argument: 'XXX' is not a string,其中的xxx就是定位的元素 解决方案:外侧用 '' ...

  9. centos 操作系统优化

    命令提示符优化 修改PS1环境变化 vim /etc/profile #在最后一行添加 export PS1='[\u@\H \w]$' \u ---显示当前登录用户名称 \h ---显示系统主机名称 ...

  10. jsencrypt vue相关的rsa加密

    vue组件引入 import { JSEncrypt } from 'jsencrypt' 方法内使用 let publicKey = asdfsafdadfafasjdhfasfd // 从后台获取 ...