• Java中的String和StringBuffer


    String:

    String 类代表字符串.

    //演示字符串
    String str  = "oracle";
    str = "甲骨文";
    

    字符串是常量;

    字符串本身不能改变,但str变量中记录的地址值是可以改变的。

    字符串的本质是一个字符的数组。

    String s3 = "abc";
    String s4 = new String("abc");//创建了两个对象
    System.out.println(s3==s4);//false
    System.out.println(s3.equals(s4));//true,//比的是内容
    //因为String重写了equals方法,建立了字符串自己的判断相同的依据(通过字符串对象中的字符来判断)

    s4创建,在内存中有两个对象。一个new的对象在堆中,一个字符串本身对象,在字符串常量池中

    常量池:是在堆里  开一块区域;

    这是代码画图的原理。

    如果内容一样,就不创建了,会把这个地址返回给你。

    String类构造方法:

    byte[] bys = new byte[]{97,98,99,100};
    String s2 = new String(bys); // 创建String对象,把数组元素作为字符串的内容
    char[] ch= new char[]{’a’,’b’,’c’,’d’,’e’};
    String s = new String(ch); //创建String对象,把数组元素作为字符串的内容(字符转串)

    String类部分方法:

    length()
              返回此字符串的长度。

    (数组长度用的是length属性、字符串是用的length方法、集合是用的size方法)

    getBytes(Charset charset)
              使用给定的 charset 将此 String 编码到 byte 序列,并将结果存储到新的 byte 数组。

    toCharArray()
              将此字符串转换为一个新的字符数组。

    toString()
              返回此对象本身(它已经是一个字符串!)直接打印引用类型变量时,默认调用该类型进行重写后的toString方法。

    startsWith(String prefix, int toffset)
              测试此字符串从指定索引开始的子字符串是否以指定前缀开始。

    endsWith(String suffix)
              测试此字符串是否以指定的后缀结束。

    contains(CharSequence s)
              当且仅当此字符串包含指定的 char 值序列时,返回 true。

    substring(int beginIndex)
              返回一个新的字符串,它是此字符串的一个子字符串。截取。包头不包尾

    equalsIgnoreCase(String anotherString)
              将此 String 与另一个 String 比较,不考虑大小写。忽略大小写

    ASCII码表:

    大写A是从65开始。

    小写a是从97开始。

    数字0是从48开始。

    byte字节的范围是-128到127.

    StringBuffer类:字符缓冲区

    StringBuffer又称为可变字符序列,它是一个类似于 String 的字符串缓冲区。

    StringBuffer的方法

     链式调用:方法返回值是本身。

    创建一个字符串缓冲区对象。用于存储数据。
    StringBuffer sb = new StringBuffer();
    添加数据。不断的添加数据后,要对缓冲区的最后的数据进行操作,必须转成字符串才可以。
    String str = sb.append(true).append("hehe").toString();

    StringBuilder类比StringBuffer快。

  • 相关阅读:
    构建maven的web项目时注意的问题(出现Error configuring application listener of class org.springframework.web.context.ContextLoaderListener 或者前端控制器无法加载)
    c3p0私有属性checkoutTimeout设置成1000引发的调试错误:
    sql面试题(学生表_课程表_成绩表_教师表)
    传值与传址
    new String()理解
    hashcode的理解
    CentOs安装ssh服务
    openstack swift memcached
    openstack swift middleware开发
    java实现二叉树
  • 原文地址:https://www.cnblogs.com/heitaitou/p/12835107.html
Copyright © 2020-2023  润新知