特点
1. 字符串不变:字符串的值在创建后不能被更改。
2. 因为String对象是不可变的,所以它们可以被共享。
3. 字符串效果上相当于char[]字符数组。 "abc" 等效于 char[] data={ 'a' , 'b' , 'c' } 。
构造方法
public String() :初始化新创建的 String对象,以使其表示空字符序列。
public String(char[] array):通过当前参数中的字符数组来构造新的String。
public String(byte[] array):通过使用平台的默认字符集解码当前参数中的字节数组来构造新的String。
字符串常量池:程序当中直接写上的双引号字符串,就在字符串常量池中。NEW的字符串不在常量池中。
常量池在堆内存中,指向堆内存中的byte[]数组。
对于基本类型来说,==是进行数值的比较。
对于引用类型来说,==是进行地址值的比较
常用方法
判断功能的方法
public boolean equals (Object anObject) :将此字符串与指定对象进行比较。
public boolean equalsIgnoreCase (String anotherString) :将此字符串与指定对象进行比较,忽略大小写。
如果比较双方一个常量一个变量,推荐把常量字符串写在前面。因为变量为null的话,写在前面会报错,写在后面会返回false。
获取功能的方法
public int length () :返回此字符串的长度。
public String concat (String str) :将指定的字符串连接到该字符串的末尾。
public char charAt (int index) :返回指定索引处的char值。
public int indexOf (String str) :返回指定子字符串第一次出现在该字符串内的索引。
public String substring (int beginIndex) :返回一个子字符串,从beginIndex开始截取字符串到字符串结尾。
public String substring (int beginIndex, int endIndex) :返回一个子字符串,从beginIndex到endIndex截取字符串。含beginIndex,不含endIndex。
转换功能的方法
public char[] toCharArray () :将此字符串转换为新的字符数组。
public byte[] getBytes () :使用平台的默认字符集将该 String编码转换为新的字节数组。
public String replace (CharSequence target, CharSequence replacement) :将与target匹配的字符串使
用replacement字符串替换。
分割功能的方法
public String[] split(String regex) :将此字符串按照给定的regex(规则)拆分为字符串数组。
参数为正则表达式