一、StrngBuffer:字符串缓冲区

StringBuffer和String区别

StringBuffer和String区别
String 一单被创建后,值就不能改变,如果参与了操作,引用发生了变化,
不是在原有的字符串上操作,而是产生了新的字符串。
StringBuffer创建后值可以变化(增删改),地址不会有变化,不会产生新的字符串。


StringBuffer加了一把锁

注意:凡事有利就有弊,牺牲了性能。
StringBuffer的每一个方法上都有线程安全控制
查看源码:

二、StringBuffer构造器

/*** StringBuffer的API* StringBuffer()* 构造一个没有字符的字符串缓冲区,初始容量为16个字符。* StringBuffer(CharSequence seq)* 构造一个包含与指定的相同字符的字符串缓冲区 CharSequence 。* StringBuffer(int capacity)* 构造一个没有字符的字符串缓冲区和指定的初始容量。* StringBuffer(String str)* 构造一个初始化为指定字符串内容的字符串缓冲区。** //可变字符串的追加返回的都是这个可变字符串的本省的引用,* 所以通过链式方式来追加代码。*/
public class StrBuffer2 {public static void main(String[] args) {//创建一个可变字符串的对象StringBuffer sb = new StringBuffer();//获得容量,初始容量有16个字符int capcity = sb.capacity();System.out.println(capcity);sb.append("12345678901234567234");System.out.println(sb);//追加的时候如果超出了16个字符会自动的扩容,不用去关心扩容多少,他是自动的capcity = sb.capacity();System.out.println(capcity);//传一个带有参数的构造器StringBuffer sa = new StringBuffer("abc");System.out.println(sa);}
}

三、StringBuffer的API

StringBuffer append(boolean b)           //布尔将 boolean参数的字符串表示附加到序列中。
StringBuffer append(char c)                     //字符将 char参数的字符串表示附加到此序列。
StringBuffer append(char[] str) 将 char数组参数的字符串表示附加到此序列。
StringBuffer append(char[] str, int offset, int len) 将 char数组参数的子阵列的字符串表示附加到此序列。
StringBuffer append(CharSequence s) 追加指定的 CharSequence到这个序列。
StringBuffer append(CharSequence s, int start, int end) 追加指定的序列 CharSequence到这个序列。
StringBuffer append(double d)                 //小数将 double参数的字符串表示附加到此序列。
StringBuffer append(float f)                       //小数将 float参数的字符串表示附加到此序列。
StringBuffer append(int i) 将 int参数的字符串表示附加到此序列。
StringBuffer append(long lng) 将 long参数的字符串表示附加到此序列。
StringBuffer append(Object obj) 追加 Object参数的字符串表示。
StringBuffer append(String str) 将指定的字符串附加到此字符序列。
StringBuffer append(StringBuffer sb) 将指定 StringBuffer这个序列。
StringBuffer appendCodePoint(int codePoint) 将 codePoint参数的字符串表示法附加到此序列。
int capacity() 返回当前容量。  StringBuffer StringBuffer.delete(int start, int end) StringBuffer StringBuffer.deleteCharAt(int index)  
public class Person12 {private String name;private int agg;public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAgg() {return agg;}public void setAgg(int agg) {this.agg = agg;}@Overridepublic String toString() {return "Person12{" +"name='" + name + '\'' +", agg=" + agg +'}';}public Person12(String name, int agg) {this.name = name;this.agg = agg;}
}
 StringBuffer sb = new StringBuffer();//追加数据sb.append(10);sb.append(1.2f);sb.append(1.2);sb.append("qwe");sb.append(new Person12("网阿万",12));//链式追加System.out.println(sb);//插入//凡是涉及到索引都要考虑越界的问题sb.insert(5,5);System.out.println(sb);//删除 char在这个序列中的指定位置。sb.deleteCharAt(3);System.out.println(sb);//delete(int start, int end)//删除此序列的子字符串中的字符。包头不包尾sb.delete(0,3);System.out.println(sb);sb.replace(0,1,"fdaasdasd");System.out.println(sb);//反转字符串sb.reverse();System.out.println(sb);//按位置索引,返回指定子字符串最右边出现的,字符串内的索引。//获得一个子字符串在母字符串中倒着数第一次出现的索引,从右边查第一次出现时的位置int ll =sb.lastIndexOf("gga");System.out.println(ll);//StringBuffer bt = new StringBuffer("helloworldgga123");//获得一个字符串在母字符串中从指定的索引开始倒数第一次出现的索引int ls = bt.lastIndexOf("dgga",1);System.out.println(ls);



StrngBuffer可变字符串相关推荐

  1. Objective-C学习笔记2013[NSString]字符串[可变字符串中,加用app减用delete]

    Objective-C学习笔记 小常识: NS是Cocoa类对象类型的前缀,来源于史蒂夫-乔布斯被苹果开除那段时间建立的公司NeXT. @是Cocoa元素的前缀,很多地方我们会看到,比如接下来... ...

  2. 可变字符串NSMutableString

    //可变字符串继承自字符串 //拼接 NSMutableString *string = [NSMutableString string]; [string appendString:@"今 ...

  3. Android开发笔记(六)可变字符串

    Andorid的文本显示 在android的TextView控件上显示文本使用setText函数,包括继承自TextView的其他控件如Button.CheckBox.EditText.RadioBu ...

  4. Java 1.1.3 修改字符串、不可变字符串

    修改字符串 String类没有提供用于修改字符串的方法.如果希望将 greeting 的内容修改为" Help!", 不能直接地将 greeting的最后两个位置的字符修改为 ' ...

  5. 可变字符串 插入,删除,替换,赋值

    NSString *str=@"welcome to oc";//字符串常量不能放在可变字符串中,应该放在不可变的字符串中 mustr=[NSMutableString strin ...

  6. IOS 学习笔记 2015-03-24 OC-API-不可变字符串

    大部分是模仿// // main.m // OC-API-不可变字符串 // // Created by wangtouwang on 15/3/25. // Copyright (c) 2015年 ...

  7. oc基础 不可变字符串的创建和使用

    oc基础  不可变字符串的创建和使用 简介:下面都是字符串基本用法. 1.字符串的创建 //创建oc常量字符串NSString *str=@"hello world!";NSLog ...

  8. OC不可变字符串和可变字符串(1)

    在OC中,字符串有:不可变字符串(NSString).可变字符串(NSMutableString). 可变字符串的方法继承于不可变字符串. 可变字符串 1.初始化一个字符串对象(除以下方法外,还可以使 ...

  9. Java系列(34)——可变字符串

    本系列博客汇总在这里:Java系列_汇总 目录 一.StringBuffer 概述 二.StringBuffer 和 String 的区别 三.StringBuffer 的 append 方法 四.可 ...

  10. 关于可变字符串StringBuffer和String的区别总结

    StringBuffer类和String一样,也用来代表字符串,只是由于StringBuffer的内部实现方式和String不同,所以StringBuffer在进行字符串处理时,不生成新的对象,在内存 ...

最新文章

  1. 腾讯汤道生:数实融合成为行业“必答题”,腾讯未来打造四大引擎
  2. 聚焦五大领域:浙江大学发布《重大领域交叉前沿方向2021》报告
  3. 矩阵的直接LU分解法
  4. 对抗生成网络_深度卷积生成对抗网络
  5. AES加密补位填充的一个问题
  6. java3.3-3.6类与对象2020.3.13
  7. matlab调用mstg,实验五 双线性变换法设计IIR数字滤波器
  8. 120天的烧脑只为孩子设计一套教具~
  9. mysql decimal型转化为float_5分钟搞懂MySQL数据类型之数值型DECIMAL类型
  10. cmder 基本配置和使用
  11. 超越SiamRPN++,SiamMan达到目标跟踪新SOTA
  12. Azure Cosmos DB(Azure 宇宙数据库)--地球已无法阻止微软玩数据库了
  13. MICAPS系统中云图数据转换为位图的实现(转)
  14. 微信小程序 ui框架使用
  15. 美国自动驾驶汽车法规
  16. 花生壳域名SSH登录不上的问题
  17. Windows 桌面应用开发入门
  18. 简单典型二阶系统_MIT—微分方程与线性代数笔记2.1 二阶常微分方程
  19. 金明的预算budget题解
  20. unity ShaderLab 基础之【像素混合Blend】Blend命令详解 shaderLab blend blendOp透明度颜色混合

热门文章

  1. C++11的模板类型判断——std::is_same和std::decay
  2. mysql 存储特殊符号_mysql 存储特殊符号
  3. excel中实现多条件去重计数
  4. 中文论文检索证明怎么开_论文检索证明怎么开
  5. robocopy 中的/MIR参数
  6. 少年宫计算机活动总结改进措施,少年宫乒乓球的活动总结
  7. 哪里看计算机主板,电脑主板型号和参数在哪里查看
  8. 淘宝/京东/苏宁/拼多多/唯品会 返利消息批量转链思路
  9. oracle新增字段,并设置默认值
  10. Python实现简易图形用户界面计算器