文章目录
一、概述
Java 没有内置的字符串类型, 而是在标准 Java 类库中提供了一个预定义类,很自然地叫做 String。每个用双引号括起来的字符串都是String类的一个实例。
String对象用于保存字符串,也就是一组字符序列,字符串常量对象是用双引号括起的字符序列,例如:"你好","14.31","toy"等。
字符串字符使用的是Unicode字符编码,一个字符(不区分字符汉字等)占两个字节。
二、剖析
2.1 结构剖析


2.2 创建剖析
创建String对象有两种方式:
第一种,直接赋值:
String s = "arbor";
第二种,调用构造器:
String s = new String("arbor");

2.3 String特性
比如下面代码:
String a = "abc";
a = "xyz";

String a = "hello";
String b = "abc";
String c = a + b;
public class String01 {
String str = new String("arbor");
public void change(String str) {
str = "java";
}
public static void main(String[] args) {
String01 aaa = new String01();
aaa.change(aaa.str);
System.out.println(aaa.str);
}
}
三、String类的常用方法
equals(Object other):判断字符串内容是否相等,区分大小写;如果字符串与 other 相等,返回 true。
equalsIgnoreCase(String other):判断字符串内容是否相等,不区分大小写;如果字符串与 other 相等(忽略大小写),返回 true。
length():返回字符串的长度。
indexOf(...):获取字符(也可以是字符串)在字符串中第一次出现的索引,索引从0(或者可以自己指定)开始,如果找不到,返回-1。
lastIndexOf(...):获取字符(也可以是字符串)在字符串中最后一次出现的索引,索引从0(或者可以自己指定)开始,如果找不到,返回-1。
substring(...):截取指定范围的子串。只传入一个参数的话是从该数字的索引到最后一个字符。传入两个参数的话是从第一个索引值到第二个索引值,但是不包括第二个索引值,包头不包尾。
trim():返回删除了原始字符串头部和尾部的空格的新字符串。
charAt(int index):获取该字符串某处索引的字符。
toLowerCase():返回一个新字符串。将原始字符串中的大写字母改为小写。
toUpperCase():返回一个新字符串。将原始字符串中的小写字母改为大写。
replace(String str, String str2):返回一个新字符串。将一个字符串中的str更换为str2。
concat(String str):将str拼接到原始字符串后面。
split(...):根据传入的正则表达式将字符串分割,返回一个字符串数组。有些字符需要使用\转义。
toCharArray():将字符串转换为字符数组。
compareTo(String anotherString):比较两个字符串的大小,前者大返回正数;后者大返回负数;如果相等,则返回0。
format(...):格式化字符串。
public static void main(String[] args) {
String name = "乔木先生";
int age = 18;
String info = "我的名字是%s,年龄是%d";
String formatStr = String.format(info, name, age);
System.out.println(formatStr);
}
输出结果:

intern():如果池中已经包含一个等于此String对象的字符串,则返回池中的字符串。否则,将此字符串添加到池中,并且返回此String对象的引用。
该方法最终返回的是常量池的对象地址。
startsWith(String prefix):如果字符串以 suffix 开头,则返回 true。
endsWith(String suffix):如果字符串以 suffix 结尾,则返回 true。
contains(String str):判断一个字符串中有没有str子串,有的话为true
join(...):返回一个新字符串,用给的字符连接所有元素。
String all = String.join(" / ", "S", "M", "L", "XL");
// all is the string "S / M / L / XL"










