Java字符串

1.Java的API和API帮助文档

  • 用于查找各种方法,类和函数的使用
    Java的API文档链接:https://pan.baidu.com/s/1TXh6rBAFsCfnTS3CW8fvsg
    提取码:dvhs
    下载之后点击第一个(有问号这个)
    在这里插入图片描述
    点击显示
    在这里插入图片描述
    点击索引–>>输入arrays–>>点击显示–即出现arrays有关的方法
    在这里插入图片描述
    在这里插入图片描述

2.创建String的两种方式

  • 通过构造方法创建
    ​ 通过 new 创建的字符串对象,每一次 new 都会申请一个内存空间,虽然内容相同,但是地址值不同
  • 直接赋值方式创建
    ​ 以“”方式给出的字符串,只要字符序列相同(顺序和大小写),无论在程序代码中出现几次,JVM 都只会建立一个 String 对象,并在字符串池中维护
    代码:
    在这里插入图片描述
    结果:
    在这里插入图片描述

3.字符串内存原理

  1. 字符串存储的内存原理
    String s = “abc”;直接赋值
    特点:
    ​ 此时字符串abc是存在字符串常量池中的。
    ​ 先检查字符串常量池中有没有字符串abc,如果有,不会创建新的,而是直接复用。如果没有abc,才会创建一个新的。
    所以,直接赋值的方式,代码简单,而且节约内存。

4.“==”比较的是什么

1.如果比较的是基本数据类型则比较的的是数据值
2.如果比较的是引用数据类型则比较的是地址值

  • 基本数据类型 :整数类型, 浮点类型, 布尔类型 ,字符类型 。
  • 引用数据类型 :除了基本类型就是引用数据类型。
    字符串比较:
    3.字符串比较
  • boolean equals方法(要比较的字符串) //完全一样结果才是true,否则为false
  • boolean equalslgnoreCase(要比较的字符串) //忽略大小的比较
    例:
public class demo {
    public static void main(String[] args) {
        //1.创建两个字符串对象
        String s1 = new String("abc");
        String s2 = "Abc";
        String s3 = "Abc";
        //2.==号比较
        //基本数据类型:比的是数据值
        //引用数据类型:比的是地址值
         System.out.println(s3 == s2);//结果为true
        System.out.println(s3 == s2);//结果为false
        //3.比较字符串对象中的内容是否相等
        boolean result1 = s1.equals(s2);
        System.out.println(result1);//false

        //4.比较字符串对象中的内容是否相等,忽略大小写
        //1 一 壹 这不行
        //忽略大小写只能是英文状态下的a A
        boolean result2 = s1.equalsIgnoreCase(s2);
        System.out.println(result2);//true
    }
}

5.字符串截取与敏感值替换

1.字符串截取

  • String substring(int beginindex ,int endindex) //截取
    注意:包头不包尾,包左不包右 只有返回值才是截取的小串
  • String substring(int beginIndex) //截取到末尾

2.敏感值替换

  • String replace(旧值,新值) //替换
    注意:只有返回值才是替换后的结果
    实例:
public class demo {
    public static void main(String[] args) {

        //1.定义一个字符串记录身份证号码
        String str = "321281202001011234";
        //2.获取出生年月日

        String str2 = str.substring(1, 3);
        String str3 = str.substring(6); //字符串索引6开始到末尾
        System.out.println(str2);
        System.out.println(str3);

        //1.获取到说的话
        String talk = "你玩的真好,以后不要再玩了,TMD";

        //2.把里面的敏感词TMD替换为***
        String result = talk.replace("TMD", "***");

        //3.打印结果
        System.out.println(result);
    }
}

运行结果:
在这里插入图片描述

6.StringBuilder字符串容器

StringBuilder 可以看成是一个容器,创建之后里面的内容是可变的。
当我们在拼接字符串和反转字符串的时候会使用到

6.1 基本使用

public class StringBuilderDemo3 {
    public static void main(String[] args) {
        //1.创建对象
        StringBuilder sb = new StringBuilder("abc");
        //2.添加元素
        /*sb.append(1);
        sb.append(2.3);
        sb.append(true);*/
        //反转
        sb.reverse();
        //获取长度
        int len = sb.length();
        System.out.println(len);
        //打印
        //普及:
        //因为StringBuilder是Java已经写好的类
        //java在底层对他做了一些特殊处理。
        //打印对象不是地址值而是属性值。
        System.out.println(sb);
    }
}

6.2 链式编程

public class StringBuilderDemo4 {
    public static void main(String[] args) {
        //1.创建对象
        StringBuilder sb = new StringBuilder();

        //2.添加字符串
        sb.append("aaa").append("bbb").append("ccc").append("ddd");

        System.out.println(sb);//aaabbbcccddd

        //3.再把StringBuilder变回字符串
        String str = sb.toString();
        System.out.println(str);//aaabbbcccddd

    }
}

7. StringJoiner

  • StringJoiner跟StringBuilder一样,也可以看成是一个容器,创建之后里面的内容是可变的。
  • 作用:提高字符串的操作效率,而且代码编写特别简洁,但是目前市场上很少有人用。
  • JDK8出现的

基本使用:

//1.创建一个对象,并指定中间的间隔符号
StringJoiner sj = new StringJoiner("---");
//2.添加元素
sj.add("aaa").add("bbb").add("ccc");
//3.打印结果
System.out.println(sj);//aaa---bbb---ccc
//1.创建对象
StringJoiner sj = new StringJoiner(", ","[","]");
//2.添加元素
sj.add("aaa").add("bbb").add("ccc");
int len = sj.length();
System.out.println(len);//15
//3.打印
System.out.println(sj);//[aaa, bbb, ccc]
String str = sj.toString();
System.out.println(str);//[aaa, bbb, ccc]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

雀氏帅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值