JAVA之旅(十七)——StringBuffer的概述,存储,删除,获取,修改,反转,将缓存区的数据存储到数组中,StringBuilder

讲完String,我们来聊聊他的小兄弟

一.StringBuffer概述

关于StringBuffer这个对象,Buffer是什么意思?缓冲区的意思,String一旦初始化时不可以被改变的,而StringBuffer是可以的,这就是区别,特点:

StringBuffer是一个容器

可以字节操作多个数据类型

最终会通过toString方法变成字符串

java如何将数组转化为数值类型 java中数组转string_数据

存储

StringBuffer append():将指定的数据作为参数添加到已有数据的结尾处

删除

StringBuffer delete(start , end)删除缓冲区的数据,包含start,不包含end
StringBuffer deleteCharAt(index)删除指定位置的字符

获取

char charAt(int index)
int indexOf(String str)
int lasrIndexOf(String str)
String subString(int start,int end)

修改

StringBuffer replace(start,end,string)
void setChatAt(int dex,char ch)

反转

String reverse()

将缓存区的数据存储到数组中

void getChars(int srcBegin,int srcEnd ,char[] dst,int dstBegin)

有着这样的特性,那我们逐步来讲一下

package com.lgl.hellojava;
//公共的 类 类名
public class HelloJJAVA {
public static void main(String[] args) {
/**
* StringBuffer
*/
StringBuffer sb = new StringBuffer();
StringBuffer append = sb.append(78);
sop(sb == append);
sop(sb.toString());
sop(append.toString());
}
/**
* 输出
*/
public static void sop(Object obj) {
System.out.println(obj);
}
}

这算是比较常见的吧,我们没必要这么麻烦,我们可以简化

sb.append("abc").append(36);
sop(sb.toString());

我们可以直接输出字符串

java如何将数组转化为数值类型 java中数组转string_bc_02

这个连续的方法叫做方法调用链

因为StringBuffer的特性,我们可以在里面插入数据,我现在想在a后面插入字符串,怎么实现呢?

sb.append("abc").append(36);
sb.insert(1, "lgl");
sop(sb.toString());

没错。insert,他的两个参数,一个是下标,一个是数据,这样,我们就插入成功了

java如何将数组转化为数值类型 java中数组转string_数组_03

我们再来聊一下删除

/**
* 删除
*/
public static void method_delete() {
StringBuffer sb = new StringBuffer("abcdefg");
sop(sb.toString());
// 删除bc
// sop(sb.delete(1, 3).toString());
// 删除d
sop(sb.deleteCharAt(3));
// 清空缓冲区
sop("all:" + sb.delete(0, sb.length()));
}

其实这些都是比较简单的

java如何将数组转化为数值类型 java中数组转string_数据_04

OK,按照顺序我们现在讲获取了,其实我们在将String的时候就已经讲过了,这里就不多说了。我们说修改,修改是比较经典的,修改数据我们这样写

/**
* 修改
*/
public static void method_update() {
StringBuffer sb = new StringBuffer("abcdefg");
// 替换一部分
sop(sb.replace(1, 4, "java"));
// 替换一个
sb.setCharAt(sb.length() - 1, 'k');
sop(sb.toString());
}

结果

java如何将数组转化为数值类型 java中数组转string_数组_05

OK,修改成功,将缓冲区存储到数组中

/**
* 将缓存区的数据存储到数组中
*/
public static void method_getchar() {
StringBuffer sb = new StringBuffer("abcdefg");
char[] chs = new char[4];
/**
* 从1开始,4结束,存在chs里,从头1开始存
*/
sb.getChars(1, 4, chs, 1);
for (int i = 0; i < chs.length; i++) {
sop("char[" + i + "] = " + chs[i] + ";");
}
}

输出的结果,嘿嘿

java如何将数组转化为数值类型 java中数组转string_bc_06

二.StringBuilder

这个在JDK1.5之后才有

StringBuffer:线程同步

StringBuilder:线程不同步

开发中不建议使用StringBuilder

我们看一下他的API说明:

java如何将数组转化为数值类型 java中数组转string_数组_07

用法差不多,就不多讲了,本篇闲到这里