JAVA:String类详解(快速掌握String的使用)
1、前言
String类是我们用来处理字符串的常用类。
在接下来,我会通过讲解:
创建String的方式->String之间的比较->String类的常用方法
来帮助你掌握String类的基本用法。
2、String的使用
2.1 创建String
创建String多种多样,这里列举了常用的几种。
有一点要注意,如果要通过byte数组创建字符串,byte数组中的单个值不能大于127,因为这里是通过ASCII码表来对应的。
// 直接对“zjx”引用 String string01 = "zjx"; // 将“zjx”传入构造方法进行构建 String string02 = new String("zjx"); // 通过字符数组构建 String string03 = new String(new char[]{'z','j','x'}); // 通过字节数组构建 String string04 = new String(new byte[]{97,98,99}); // 通过字节数组和索引构建 String string05 = new String(new byte[]{97,98,99},0,2); // 通过字符数组和索引构建 String string06 = new String(new char[]{'z','j','x'},0,2);String类的构造方法

2.2 String之间的比较
2.2.1 比较方式
一般情况下,String之间的比较是通过String类重写的equals方法来判定。
2.2.2 equals详解
String类重写的equals方法:
1 判断比较对象是否为自身 ,是则返回true ,不是则进行下一步。
2 判断比较对象是否为String类型 , 不是则返回false , 是则进行下一步。
3 字符串压缩功能是否被禁用 ,若禁用则跳到步骤4,为禁用则跳到步骤5。
4 若启用压缩,仅当两字符串编码相同时才继续比较,相等则下一步 , 不相等则返回false。
5 判断两个String类底层的
@Stable private final byte[] value; //其实就是表现出来的字符串
是否一致,并返回结果。

2.3 常用方法
// equals区分大小写,判断内容是否一致 System.out.println("zjx 与 ZJX :" + "zjx".equals("ZJX")); // equalsIgnoreCase忽略大小写,判断内容是否一致 System.out.println("zjx 与 ZJX :" + "zjx".equalsIgnoreCase("ZJX")); // length获取字符串长度 System.out.println("zjx".length()); // indexOf获取字符在字符串中第一次出现的索引,若不存在该字符,返回-1 System.out.println("zjxzjx".indexOf("z")); // indexOf获取字符在字符串中最后一次出现的索引,若不存在该字符,返回-1 System.out.println("zjxzjx".lastIndexOf("z")); // split根据该字符分割字符串,若该字符不存在于字符串中,则不分割 System.out.println("zjxzjx".split("z").length); // substring从指定索引处截取指定个数的字符串 System.out.println("zjxzjx".substring(1,2)); // trim去除前后空格 System.out.println(" zjxzjx ".trim()); // 获取在指定索引处的字符 System.out.println("zjx".charAt(1));
3、结束语
像“zjx”这种后面也是可以直接调用String类的方法,在两个String比较时,若一方一致固定,推荐让“zjx”这种字符串来调用equals,来避免空指针异常。
String类型的值是不可改变的,所发生的字符串变化,只不过是引用发生了变化。