正则表达式
正则表达式概念:
正则表达式本质就是一个“规则字符串”,可以用于对字符串数据的格式进行验证,以及匹配、查
找、替换等操作。该字符串通常使用^运算符作为开头标志,使用$运算符作为结尾标志,当然也可以省
略。
正则表达式规则:
正则表达式规则:
可变字符串类
可变字符串类的基本概念
1.由于String类描述的字符串内容是个常量不可改变,当需要在java代码中描述大量类似的字符串是,只能单独申请和存储,此时会造成内存空间的浪费。
2.为了解决上述问题,可以使用java.lang.StringBuilder类和java.lang.StringBuffer类来描述字符序列可以改变的字符串,如‘ab’.
3.StringBuffer是从jdk1.0开始存在,属于线程安全的类,因此效率比较低
4.StringBuilder是从jdk1.5开始存在,属于非线程安全的类,效率比较高
StringBuilder类常用的构造方法
StringBuilder类常用的成员方法
注意:
作为参数传递的话,方法内部String不会改变其值,StringBuffffer和StringBuilder会改变其值。
StringBuilder类扩容算法的源码解析
底层采用byte数组来存储所有字符内容。
//使用for循环删除多个字符
for(int i=8;i<12;i++){
//由结果可知:删除一个字符就跳过一个字符继续删除,因为每当删除一个字符后后面 的字符会向前补位,因为下标会发生变化
//Sb.deleteCharAt(i);
解决办法:
//始终删除下标为8的元素
Sb.deleteCharAt(8);
}
字符串类的笔试考点:
考点一:既然StringBuilder类的对象本身可以修改,那么为什么成员方法还有返回值呢?
解释:为了连续调用
例:Sb3.revese().append("1").insert(0,"e");
返回值的设计
考点二:如何实现StringBuilder类型和String类型之间的转换呢?
解释:
String str=sb3.toString();
StringBuilder sb5=new StringBuilder(str3);
考点三:
String,StringBuilder,StringBuffer谁的效率最高。
解释:String<StringBuffer<StringBuilder