1、String类被final修饰,表示它不能被修改,已是终态类,不能被继承
2、构造方法:
String();无参
String(String original);参数:一个字符串
String(char value[]);参数:一个字符数组
String(char value[], int offset, int count);参数:一个字符数组,开始截取数据的位置,截取的长度
String(byte bytes[], int offset, int length, String charsetName);参数:一个byte数组,开始截取数据的位置,截取的长度,字符编码
String(byte bytes[], int offset, int length, Charset charset);一个byte数组,开始截取数据的位置,截取的长度,用来解码的编码
String(byte bytes[], String charsetName);参数:一个byte数组,字符编码,该方法常用,比如在servlet的get、post方法中处理乱码的问题
String(byte bytes[], Charset charset);参数:一个byte数组,用来解码的编码
String(byte bytes[], int offset, int length);参数:个byte数组,开始截取数据的位置,截取的长度
String(byte bytes[]);参数:一个byte数组
String(StringBuffer buffer);参数:一个StringBuffer对象
String(StringBuilder builder);参数:一个StringBuilder对象
3、常用方法:
public int length();返回字符串的长度
public boolean isEmpty();判断字符串是不是为空
public char charAt(int index);获取某个位置的字符
public void getChars(int srcBegin, int srcEnd, char dst[], int dstBegin);复制字符串的一部分到目标数组的位置,参数分别是要复制部分的起始索引,要复制部分结束位置的下一位置的索引,目标数组,目标数组指定位置的开始索引
public byte[] getBytes(String charsetName); 获取某字符串相应编码的字节数组形式
public byte[] getBytes(Charset charset) ;作用同上,参数不同
public byte[] getBytes() ;获取某字符串的字节数组形式
public boolean equals(Object anObject);判断是否与另一对象相同
public boolean equalsIgnoreCase(String anotherString);两个字符串忽略大小写进行比较
public int compareTo(String anotherString);返回值是两个字符串的长度相减,两个相同的字符串则会返回0
public int indexOf(int ch) ;获取某个字符的索引
public int lastIndexOf(int ch, int fromIndex);某字符最后一次出现的索引
public String substring(int beginIndex, int endIndex) ;获取某字符串的子串,第二个参数如果不写的话默认是该字符串的长度
public String concat(String str) ;字符串拼接
public String replace(char oldChar, char newChar); 字符替换,参数:旧字符、新字符
public boolean matches(String regex);判断是否符合正则表达式
public String replaceFirst(String regex, String replacement);替换第一次满足正则表达式的部分
public String replaceAll(String regex, String replacement) ;替换全部满足正则表达式的部分
public String toLowerCase();将字符串改为小写
public String toUpperCase();将字符串改为大写
public String trim();去掉字符串中的空格
public char[] toCharArray();将字符串转为数组
3、StringBuilder不能安全使用多线程。 如果需要同步, 那么建议使用StringBuffer
。