Java笔记
来源:互联网 发布:山寨币交易平台源码 编辑:程序博客网 时间:2024/05/29 08:05
StringBuffer就是字符串缓冲区,是用于存储数据的容器。缓冲区里面的容器其实还是数组,只不过是把数组封装了,对外提供方法。缓冲区构造函数StringBuffer()构造一个不带字符的字符串缓冲区,初始容量为16个字符。就是说只要一new对象,就产生了一个长度为16的数组。
StringBuffer特点:
1. 长度是可变的
2. 可以存储不同类型数据
3. 最终要转成字符串进行使用
4. 可以对字符串进行修改
可变长度数组的原理:
虽然字符串缓冲区的长度可变,但是数组的长度是不变的。字符串缓冲区的初始长度为16,如果出现了17个字符,系统就会复制一个数组,长度是原先的两倍,然后把原来的16个字符按照固定的位置原封不动挪到新数组上,然后再给第17个角标元素赋值。
构造方法
StringBuffer():构造一个初始容量为16个字符的字符串缓冲区
StringBuffer(String str):构造一个字符串缓冲区,并将其内容初始化为指定的字符串内容一般方法
- 添加
StringBuffer append(date):可以接收不含byte和short的基本数据类型。将这些数据转换成字符串,然后将这些字符添加到缓冲区末端
StringBuffer insert(int offset,date):在指定的角标处添加字符 - 删除
StringBuffer delete(int start,int end):包含开始,不包含结尾
StringBuffer deleteCharAt(int index):删除指定角标的元素 - 查找
char charAt(int index):查找字符串缓冲区某角标的元素
int indexOf(String str):查找字符串在字符串缓冲区中的角标,如果不存在则返回-1
int indexOf(String str, int fromIndex):从某角标开始查找字符串在字符串缓冲区中的位置
int lastIndexOf(String str):倒叙查找
int lastIndexOf(String str, int fromIndex):从某位置倒叙查找 修改
StringBuffer replace(int start, int end, String str):
void setCharAt(int index, char ch):
void setLength(int newLength):
例:StringBuffer sb = new StringBuffer("abcda");sb.insert(3, "ab");System.out.println(sb);System.out.println(sb.charAt(2));System.out.println(sb.indexOf("ab"));System.out.println(sb.indexOf("ab", 2));System.out.println(sb.lastIndexOf("ab",2));sb.replace(1, 3, "nba");System.out.println(sb);sb.setCharAt(2, 'q');System.out.println(sb);sb.setLength(10);System.out.println(sb);sb.delete(0,sb.length());//清空缓冲区System.out.println(sb);
输出结果:
abcabda
c
0
3
0
anbaabda
anqaabda
anqaabda□□
//清空缓冲区
- 添加
StringBuilder
StringBuffer从JDK1.0版本开始,线程安全,运行速度较慢
StringBuilder从JDK1.5版本开始,线程不安全,运行速度快,优先使用StringBuilder
- java笔记
- JAVA笔记
- java笔记
- java笔记
- JAVA笔记
- java笔记
- Java 笔记
- java笔记
- java 笔记
- java笔记
- java笔记
- java笔记
- Java笔记
- java笔记
- java笔记
- Java笔记
- java笔记
- java笔记
- 开启企业云计算之门的金钥匙:基础框架和技术标尺(2)
- [leetcode 377. Combination Sum IV]medium|week10
- 聚集索引和非聚集索引-进阶篇(加精)
- 常用ANSI C语言标准库函数汇总(一)
- Struts 05 综合案例
- Java笔记
- 如何提取码流的基本信息
- Java ArrayList简介 源码剖析
- 读书笔记《计算机程序的构造和解释》一
- JavaScript学习笔记35-Date对象
- reactnative Linking实用
- Java LinkedList简介 源码剖析
- TCP/IP协议三次握手与四次握手流程解析
- Windows环境下C++多线程TCP通信