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. github访问慢处理办法

    Windows 系统:C:\Windows\System32\drivers\etc\hostsLinux 系统:/etc/hostsMac(苹果电脑)系统:/etc/hostsAndroid(安卓) ...

  2. c++关于使用new的纠正

    自己之前纠正过这个问题,但还是忘了.今天再拿出来. 今天主要总结关于使用 c++ 标准中的 new 关键字. [结论] A.处理new可能抛出的异常 B.针对new使用std::nothrow不抛出异 ...

  3. 聊一聊Yarp结合Nacos完成服务发现

    背景 Yarp 这个反向代理出来后,相信还是有不少人在关注的. 在 Yarp 中,反向代理的配置默认也是基于配置文件的,也有不少大佬已经把这个配置做成了数据库配置+可视化界面. 仔细想了想,做成数据库 ...

  4. 【LeetCode】915. Partition Array into Disjoint Intervals 解题报告(Python)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 题目地址: https://leetcode.com/problems/partitio ...

  5. 【剑指Offer】链表中倒数第k个节点 解题报告(Python)

    [剑指Offer]链表中倒数第k个节点 解题报告(Python) 标签(空格分隔): LeetCode 题目地址:https://www.nowcoder.com/ta/coding-intervie ...

  6. 【LeetCode】201. Bitwise AND of Numbers Range 解题报告(Python)

    [LeetCode]201. Bitwise AND of Numbers Range 解题报告(Python) 标签: LeetCode 题目地址:https://leetcode.com/prob ...

  7. Codeforces Gym-100985C: MaratonIME plays Nim(交互题&博弈)

    C. MaratonIME plays Nim time limit per test : 2.0 smemory limit per test : 64 MBinputstandard inputo ...

  8. Feature Distillation With Guided Adversarial Contrastive Learning

    目录 概 主要内容 reweight 拟合概率 实验的细节 疑问 Bai T., Chen J., Zhao J., Wen B., Jiang X., Kot A. Feature Distilla ...

  9. McGan: Mean and Covariance Feature Matching GAN

    目录 概 主要内容 Mean Matching IPM prime dual Covariance Feature Matching IPM prime dual 算法 代码 Mroueh Y, Se ...

  10. uniCloud爬虫获取网页数据

    'use strict'; let request = require('request') let cheerio = require('cheerio'); //爬虫 let iconv = re ...