1.String类的作用、构成
String类用来代表字符串,它用来,操作字符串,比如比较,查找,拼接,截取等等。String类存在于java.lang包下,查看源码可以看到String是一个publilc类,它被final修饰,所以它不能被继承,它本身也没有继承任何的类或抽象类,但它实现了三个接口 Serializable, Comparable, CharSequence,这一点需要注意。
2.如何构建一个String类
通过字符串常量的方式
String string = "Java 是世界上最好的语言!";
通过无参构造方法构建一个String类
String string = new String();
通过带String参数的方式构建一个String类
String string = new String(""java 是世界上最好的语言!);
通过带字节数组参数的方式构建一个String类
String str = new String(byte[]);
通过带字符数组参数的方式构建一个String类
String str = new String(char[]);
String类的不可变特性
String类中字符存储使用字符数组的方式,此字符数组被private和final修饰,所以不可变体现在长度和内容上,长度上被final修饰,自己本身是数组,所以长度不可变,内容上它又被private修饰,外部不可访问。
3.常用的方法
boolean = equals(Object obj);
继承自Object类,经过重写后,比较两个字符串是否相等,相等返回true,否则返回false。
int = hashCode();
继承自自Object,经过重写后,将当前字符串的每一个char元素拆开,乘以31求和。
int = compareTo(String string);
实现自Comparable接口,实现了comparaTo方法,按照字典(Unicode编码)索引的顺序比较
String = toString();
继承Object类,经过重写后,不在输出类名@hashCode,而是输入这个String对象的字符内容。
char = chatAt(int index);
返回字符串指定位置上的字符。
int = codePointAt(int index);
返回字符串指定位置上字符的code码
String = cancat(String string);
将给定的字符串拼接在当前String对象的后面,性能不好。
boolean = contains(CharSequence s);
判断给定的字符串是否在此对象中是否存在。
startsWith(String prefix)和endsWith(String suffix);
判断此字符串是否已xx开头/结尾。
byte[] = getBytes(String string);
将当前的字符串转化成byte数组
char[] = toCharArray();
将当前的字符串转化成char数组
int index = indexOf(int/String str [,int fromIndex] );
包含四个重写方法,找寻给定的元素在字符串中第一次出现的索引位置 若字符串不存在则返回-1
int index = lastIndexOf(int/String str , [int fromIndex]);
找寻给定的元素在字符串中最后一次出现的索引位置 若不存在则返回-1
boolean = isEmpty();
判断当前字符串是否为空字符串 (length是否为0)
替换字符方法
- String string = replace(CharSequence string);
- replaceAll(CharSequence string);
- replaceFirst(CharSequence string);
String[] = split(String regex [,int limit限度界限]);
按照给定的表达式将原来的字符串拆分开的
String = substring(int beginIndex [,int endIndex]);
将当前的字符串截取一部分从beginIndex开始至endIndex结束 [beginIndex,endIndex),若endIndex不写 则默认到字符串最后。
将全部字符串转换成大写/小写
- String = toUpperCase(); // 转化大写
- String = toLowerCase(); // 转化小写
String = trim();
去掉字符串前后多余的空格
boolean = matches(String regex);
regular有规律的expression表达式,正则表达式。