String类
1.String类前面加了final修饰,因此String类是不能够被继承的。将其设置为不能被继承的原因是为了减少歧义。
2.String创建好之后值是不可以被改变的,这里指的是在堆中的字符串的值是不可以被改变;
3.String 字符串是通过 char 数组来保存字符串的,而且为 final 不可变;
字符串常量池
1.使用字符串常量池。每当我们创建字符串常量时,JVM会首先检查字符串常量池,如果该字符串已经存在常量池中,那么就直接返回常量池中的实例引用;
2.如果字符串不存在常量池中,就会实例化该字符串并且将其放到常量池中;
3.由于String字符串的不可变性我们可以十分肯定常量池中一定不存在两个相同的字符串;
4.比较两个字符串是否一致最好使用equals方法;
String类常用方法
1.char charAt(int index);获取index位置的字符
2.boolean contains(CharSequence s);判断字符串中是否包含某个字符串
3.boolean endsWith(String endStr);判断是否是以某个字符串结尾
4.boolean equalsIgnoreCase(String anotherString);忽略大小写比较两个字符串是否相等
5.byte[] getBytes();转换成byte数组
6.int indexOf(String str);取得指定字符在字符串的位置
7.int indexOf(String str, int fromIndex);从指定的下标开始取得指定字符在字符串的位置
8.int lastIndexOf(String str);从后面开始取得指定字符在字符串最后出现的的位置
int length();获取字符串的长度
9.String replaceAll(String s1,String s2);替换字符串中的内容
10.String[] split(String s);根据指定的表达式拆分字符串
11.boolean startsWith(String s);判断是否是以某个字符串开始
12.String substring(int begin);根据传入的索引位置截子串
13.String substring(int beginIndex, int endIndex);根据传入的起始和结束位置截子串
14.char[] toCharArray();将字符串转换为char数组
15.void toUpperCase();转换为大写
16.void toLowerCase();转换为小写
17.String trim();去除首尾空格
18.String valueOf(Object obj);将其他类型转换为字符串类型
正则表达式
1.正则表达式是使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串
2.
\d 表示数字
\D 表示非数字
\w 表示英文字母
\W 表示非英文字母
StringBuffer简介
1.如果需要对字符串进行频繁拼接的话,建议使用StringBuffer;
2.StringBuffer的底层是byte数组(jdk9之后),jdk8中底层是char数组;
3.如果没有明确设定,则系统会默认创建一个长度为16的byte类型数组,在使用时如果数组容量不够了,则会通过数组的拷贝对数组进行扩容,所以在使StringBuffer时最好预测并手动初始化长度,这样能够减少数组的拷贝,从而提高效率;
4.StringBuffer类和String一样,也用来代表字符串,只是由于StringBuffer的内部实现方式和String不同,所以StringBuffer在进行字符串处理时,不生成新的对象,在内存使用上要优于String类;
5.
//无参构造
StringBuffer stringBuffer =new StringBuffer();
System.out.println(stringBuffer.capacity());
//有参构造
StringBuffer stringBuffer1=new StringBuffer(100);
System.out.println(stringBuffer1.capacity());
//默认值加长度
StringBuffer stringBuffer2=new StringBuffer("monkey");
System.out.println(stringBuffer2.capacity());
StringBuffer进行字符串拼接
代码:
StringBuffer stringBuffer=new StringBuffer();
stringBuffer.append("wwww"); 拼接操作
stringBuffer.append("."); 拼接操作
stringBuffer.append("monkey1024"); 拼接操作
stringBuffer.append("."); 拼接操作
stringBuffer.append("com"); 拼接操作
System.out.println(stringBuffer); 拼接操作
浙公网安备 33010602011771号