1.字符串常量池与简单语法。
Jvm运行的时候,将内存分为两个部分,一部分是堆,另一部分是栈。堆存放的是创建的对象,而栈中存放的 是方法调用过程中的局部变量或引用。而JAVA字符串对象内存 实现的时候,在堆中又开辟了一块很小的内 存,其被称为常量池,专门用来存放特定的字符串对象。
2.字符串常量池与new语法
3.String是不能继承的。
二、 正是因为字符串会创建对象或者本身就是对象,所以占用的内存比较大。所以就产生了StringBuffer类(缓冲类)
StringBuffer sb=new StringBuffer(<参数序列>);查看Api的构造函数。
1.append();接收各基本类型及对象引用类型的参数。其功能为将参数所指定的内容添加到StringBuffer对象内容末尾。
三、方法链
书写格式:引用变量.方法1(<参数序列>).方法2(<参数序列>).方法3(<参数序列>)........;
注意位于中间的方法,即非最后的方法必须要有返回值(不能为void),且返回类型必须为对象引用类型。
步骤执行:1.通过引用变量调用对象中的方法1。
2.方法1将返回一个对象引用,然后通过该引用调用其指向对象中的方法2。
3.方法2将返回一个对象引用,然后通过该引用调用其指向对象中的方法3。4.最后一个方法可以没有返回值或者返回类型为基本数据类型。
四、StringBuffer类的主要方法。
1.append(String str);返回的类型为StringBuffer。
还有insert(int offset,String str);delete(int start,int end);
StringBuffer reverse();//反转
2.toString();//返回一个字符串。五、StringBuilder 类
1.StringBuilder类的执行效率比StringBuffer高,但是StringBuilder方法没有进行同步,在多线程同时操作的时候可能会产生问题,应该在单线程使用。
六、正则表达式
1.对字符串的匹配时,一般有三种情况:
1).可以使用普通字符(包括一些不可 见字符)来匹配确定的单个字符。
2).可以使用预定义的字符来表示范围中的某个字符。
3).如果预定义字符不能满足知道范围的要求,也可以使用"[]"给出自定义的范围。
2.量词
在匹配的过程中,有时需要制度某个字符或组出现的次数,这时就需要使用量词。
1).“*”便是指定的字符或组可以出现任意的次数(包括不出现)。
2).“+”表示指定的字符或组至少出现一次。
3)."?"表示指定的字符或组最多出现一次。
3.边界符
4.匹配次数的贪婪与非贪婪。
七、Pattern类与Matcher类
1.pattern类
在包下java.util.regex.Pattern下,特别注意的是Pattern类是private的,因此不能通过调用构造器创建对象,而需要调用pattern类提供的静态工厂方法来获得对象。
方法:public static pattern compile(String regex);
常用方法:int flags();
Matcher matcher(CharSequence input);//参数input表示将要被匹配的字符序列,该方法返回表示要 被匹配字符序列的匹配器对象。
String pattern();//该方法将以字符型的形式返回该模式对象表示的正则表达式。
2.Matcher类
该类的对象主要表示将要进行模式匹配的字符串或字符序列。同样不能构造实现,可以通过pattern对象中的matcher方法得到。
常用方法:1.判断
boolean matcher();//进行匹配检测。
boolean lookingAt();//是否以指定的模式开始。
boolean find();//是否查找到。
2.索引
int start();int end();
3.替换
String replaceAll(String replace);//全部替换。
String replaceFirst(String replace);//替换第一个。
八、在String类中使用正则表达式
1.匹配检查
该方法签名:public boolean matches(String ergex);注意会抛出异常,如果ergex指定的正则表达式无效。
代码举例:public static void main(String[] args){
//创建用字符串表示的正则表达式
String patternS="\\d{4}-\\d{2}-\\d{2}";
String s1="9999-68-88";
String s2="内容为999-68-99";
//对字符串s1进行匹配检测
if(s1.matches(patternS))
{
System.out.println("匹配成功");
}
if(s2.matches(patternS)){
System.out.println("匹配成功");
}
}
2.查找替换
String replaceAll(String replace);//全部替换。
String replaceFirst(String replace);//替换第一个。
注意:String 类也可以使用正则表达式进行匹配替换,但是只能替换,不能将匹配的内容取出。3.对字符串进行分析。
public String[] spilt(String regex);