特点:
(1)是不可变的字符串类型(不可变:对象的内容不能更改)
(2)final修饰的类型,不能被重写
(3)字符索引从0开始
(4)重写了equals方法和toString方法
(5)默认使用的是Unicode字符集,任意字符占两个字节
构造器:
String():
创建一个空字符序列的字符串对象。
String(byte[] bs)
创建一个字符串对象,使用默认字符集进行解码的字符串。
String(byte[] bs,String charset)
将字节数组使用指定字符集进行解码成相应的字符串对象。
String(char[] ch)
将字符数组转换成字符串对象
String(String str)
指定一个字符串字面量创建一个字符串对象。
常用方法:
int length()
返回字符串对象的字符个数。
char charAt(int index):
返回此字符序列(字符串对象)中指定索引处的字符。
String concat(String another):
将指定字符串another拼接到此字符序列的末尾,返回新对象。
boolean startsWith(String prefix);
boolean endsWith(String suffix);
查看此字符序列是否以prefix为前缀,suffix是否为后缀。
byte[] getBytes():
将此字符串按照默认字符集编码成字节序列,返回一个新的字节数组。
getBytes(String charset)
将此字符串按照指定的字符集编码成字节序列,返回新的字节数组。
**查找字符串中的字符/子字符串的位置
int indexOf(int ch)
返回字符ch在此字符串中第一次出现的下标
int indexOf(int ch,int fromIndex)
返回字符ch从此字符串fromIndex下标开始往后第一次出现的下标。
int indexOf(String str)
返回字符串str在此字符串中第一次出现的下标
int indexOf(String str,int fromIndex)
返回字符串str从此字符串fromIndex下标开始往后第一次出现的下标。
注意:返回-1说明要找的字符不存在查找序列中。
int lastIndexOf(int ch);
int lastIndexOf(int ch,int fromIndex)
int lastIndexOf(String str)
int lastIndexOf(String str,int fomIndex)
查找字符/子字符截止到某一下标时,最后出现的位置。
**上述四个方法,查找字符/子字符串在此字符序列中最后一次出现的位置,找不到返回-1
截取子字符串的方法:
String substring(int beginIndex)
从此字符序列的beginIndex开始截取,直到最后。
String substring(int beginIndex,int endIndex)
从此字符序列的beginIndex开始截取,到endIndex。包前不包后。
字符串转成字符数组的方法:
char[] toCharArray()
将此字符序列变成字符序列
字符串中字母转为大写或小写:
String toUpperCase()
将字符串中字母都变为大写返回新字符串
String toLowerCase()
将字符串中字母都变为小写返回新字符串
前后去空格的方法:
String trim()
去掉此字符序列的前后空格。
将任意参数变为字符串对象
static String valueOf(Type v)
将参数v变为字符串对象
equals方法与==号的区别
==:比较是不是同一个对象。
equals:比较两个对象内容是否相同。
String类型中重写了equals方法
常量池:
jvm在使用字符串类型时为了提高内存的使用率,当使用字面量进行给变量赋值时,在方法区内提供了一个用于存储字面量对象的一个内存区域。
运行原理:
当使用字面量赋值时先去方法区内的常量池中查询是否有相同对象,如果有,就返回常量池中对象的地址,没有,在常量池中创建对象再返回