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

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

一.StringBuffer概述

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

  • StringBuffer是一个容器
  • 可以字节操作多个数据类型
  • 最终会通过toString方法变成字符串
  • 存储

    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());

我们可以直接输出字符串

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

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

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

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

我们再来聊一下删除


    /**
     * 删除
     */
    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()));

    }

其实这些都是比较简单的

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());
    }

结果

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] + ";");
        }
    }

输出的结果,嘿嘿

二.StringBuilder

这个在JDK1.5之后才有

  • StringBuffer:线程同步
  • StringBuilder:线程不同步

开发中不建议使用StringBuilder

我们看一下他的API说明:

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

原文地址http://www.bieryun.com/2769.html

优秀的个人博客,低调大师

微信关注我们

原文链接:https://yq.aliyun.com/articles/576333

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

相关文章

发表评论

资源下载

更多资源
Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的、适应高吞吐量的数据库方案。

Apache Tomcat7、8、9(Java Web服务器)

Apache Tomcat7、8、9(Java Web服务器)

Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。

Java Development Kit(Java开发工具)

Java Development Kit(Java开发工具)

JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。

Sublime Text 一个代码编辑器

Sublime Text 一个代码编辑器

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。