• java String,StringBuilder和StringBuffer


    String:
    1.java语言中的字符串值属于String类,虽然有其它方法表示字符串(如字符数组),但java一般使用Sting类作为字符串的标准格式,java编译器把字符串值作为String对象。
    2.String对象一旦创建就不能改变。如果需要进行大量的字符串修改操作,应该使用StringButter/StringBuilder类或者字符数组,最终结果可以被转换成String对象。

    StringBuffer:
    1.StringBuffer 线程安全的可变字符序列
    2.一个类似于String的字符串缓冲区(字符数组)通过某些方法调用可以改变该序列的长度和内容。
    3.每个字符串缓冲区都有一定的容量。只要字符串缓冲区所包含的字符序列的长度没有超过此容量就无须分配新的内部缓冲区数组。
    4.如果内部缓冲区溢出,则此容量自动增大。

    StringBuilder:
    1.从JDK5开始,为StringBuffer类补充了一个单个线程使用的等价类,即StringBuilder。
    2.与StringBuffer相比,通常应该优先使用StringBuilder类,因为它支持所有相同的操作,但是由于它不执行同步,所以速度更快。

    public int length() //返回字符串长度
    public int capacity() //返回字符串数组容量长度
    public StringBuffer append(String str) //添加一个字符或字符串
    public StringBuffer insert(int offset,String str) //在指定位置插入一个字符串
    public int indexOf(String str) //查找字符串首次出现的下标
    public int indexOf(String str,int fromIndex) //从指定位置开始,查找字符串首次出现的下标
    public int lastIndexOf(String str) //查找字符串最近一次出现的下标
    public StringBuffer reverse() //翻转字符串
    public String toString() //将字符数组缓冲区转换为字符串常量
    API文档讲解

    public class StringBuilderDemo {
    
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            //StringBuilder sb = "abc";//无此种声明方式
            //StringBuilder sb = new StringBuilder();//默认16个字符大小的容量数组
            //StringBuilder sb = new StringBuilder(100);//初始化100个容量的字符串数组
            //StringBuilder sb = new StringBuilder("abc");//字符串的前三个字符是abc
            StringBuilder sb = new StringBuilder();
            sb.append("abc");
            sb.append(1);
            sb.append(1.5);
            System.out.println(sb.length());
            System.out.println(sb.capacity());
            sb.insert(3, "def");
            System.out.println(sb.toString());
            sb.replace(3, 6, "kkk");
            System.out.println(sb.toString());
            System.out.println(sb.indexOf("b"));
            System.out.println(sb.reverse());
        }
    
    }
  • 相关阅读:
    Android获取手机型号,系统版本,App版本号等信息
    RFC1939POP3协议中文版
    HDU 1712 01背包 ACboy needs your help
    IOS NSArray 小计
    很有趣的APPLET小程序
    MyEclipse如何显示行数
    e人事管理系统人事档案档案编辑
    2013, VI Samara Regional Intercollegiate Programming Contest
    GB28181视频监控统专题之 相关标准
    基于Golang的http、web服务框架(SSSS)
  • 原文地址:https://www.cnblogs.com/liubing2018/p/8478036.html
Copyright © 2020-2023  润新知