Java入门—字符串

作者: kakarotto | 来源:发表于2018-11-08 18:27 被阅读1次

    String的常用方法

    image.png

    以上是我们平时常用的方法,建议自己手动测试练习加以记忆,其他方法可以查阅文档。

    将字符串转换为byte数组

    示例代码:

    String name = "java 编程 基础";
    byte[] b = name.getBytes();
    for(int e: b){
        System.out.print(e+" ");
    }
    
    输出结果:
    106 97 118 97 32 -25 -68 -106 -25 -88 -117 32 -27 -97 -70 -25 -95 -128
    

    在utf-8编码中,一个汉字是用三个字节去表示,所以上边输出为三个连续负数。


    image.png

    每个字节为8位,最大值是不能超过127的,而汉字转换为字节后是超过127的,之后就会发生溢出,以负数的方式显示。

    将byte数组转为字符串:

    String e = new String(b);
    System.out.println(e);
    

    new String()方法可以传入编码方式,(gbk utf-8)

    byte数组和字符串互转时,编码要相同。

    ==和equals方法的区别

    String a = "allen";
    String b = "allen";
    String c = new String("allen");
    
    System.out.println(a==b);
    System.out.println(a==c);
    System.out.println(a.equals(b));
    System.out.println(a.equals(c));
    
    • 对于==, 如果作用于基本数据类型的变量,则直接比较其存储的 “值”是否相等;
      如果作用于引用类型的变量,则比较的是所指向的对象的地址
    • 对于equals :注意:equals方法不能作用于基本数据类型的变量如果没有对equals方法进行重写,则比较的是引用类型的变量所指向的对象的地址;诸如String、Date等类对equals方法进行了重写的话,比较的是所指向的对象的内容。


      来源于慕课网.png

    字符串的不可变性

    String对象被创建后,是不可变的。
    所谓的修改是创建了新的对象。原变量指向了新的对象。

    字符串处理类StringBuilder

    区别:StringBuilder 是可变的。
    当频繁操作字符串时,建议使用 StringBuilder ,如果使用String,会产生很多中间变量,会在常量池产生很多废弃的数据。

    StringBuilder 和 StringBuffer

    二者基本相似,StringBuffer是线程安全的(相对来说速度慢),StringBuilder非线程安全,但是性能高。

    四种构造方法:


    image.png

    如果文章对你有帮助记得点个赞~
    关注作者后续更新不错过~

    相关文章

      网友评论

        本文标题:Java入门—字符串

        本文链接:https://www.haomeiwen.com/subject/bsfixqtx.html