------- <a href="http://edu.csdn.net/heima" target="blank">android培训</a>、<a href="http://edu.csdn.net/heima" target="blank">java培训</a>、期待与您交流! ----------
由于最后一天的正则表达式主要的特性还是封装的对字符串的操作,所以就综合到字符串这篇日记里来,这样更能体现出正则表达式的简便。
String 对象是不可变的。每一个修改String值的方法,实际上都是重新创建了一个全新的String对象。
StringBuiler对象是不可变的,我们可以给String对象加任意多的别名,因为String对象具有只读特性.
StringBuilder线程不安全,StringBuffer是线程安全的,但是StringBuilder由于是线程不安全的所以速度上有优势。
public class Test{
public String implicit(String[]fields){
String s="";
for(int i=0;i<fields.len){
s=s+i;
}
}
public String explicit(String[]fields){
StringBuilder result=new StringBuilder();
for(int i=0;i<fields[].length;i++){
result.append(fields[i]);
}
}
}
打印StringBuilder的对象时,要调用toString()方法,比如System.out.println(result.toString());
正则表达式是一种强大而灵活的文本处理工具。使用正则表达式,可以构造复杂的文本模式,并对输入的字符串进行搜索。一旦找到了匹配这种模式的部分,我们就可以随心所以的进行处理。正则表达式提供了一种完全通用的方式,能够解决各种字符串处理相关的问题。匹配,选择,编辑以及验证。String自带的正则表达功能相对来说是比较弱的,所以要用到功能强大的正则表达式对象,需要导入java.util.regex包,然后用static Pattern.compile()方法来变异你的正则表达式即可。如果我们有其他语言的经验,我们会发现java上面的正则表达式是跟其他语言有一些小小的区别的,比如java对反斜线\的不同处理。
在其他语言中,\\表示“我想要在正则表达式中插入一个普通的反斜线。”而在java中,\\的意思是我要插入一个正则表达式的反斜线,所以其后的字符具有特殊的意义,如果你想表示一个数字,那么正则表达式应该是\\d,如果你想插入一个普通的反斜线,则应该是\\\\,不过换行和制表符之类的东西只需使用单反斜线。
public class Test{
//这个是利用String自带的正则表达功能
public static void main(String[]args){
System.out.println("-1234").matches("-?\\d+");//这个是匹配功能
System.out.println(Arrays.toString("Haa uuu eee".split(" ")));//这个是字符的分割功能
}
}
接下来我们说regex包,我们可以把想要的检索的字符串传入Pattern对象的matcher方法,matcher方法会产生一个Matcher对象,他又很多功能可以用。接下来写一个小例子来做演示import java.util.regex.*;
public class Test{
public static void main(){
Pattern p=Pattern.compile("\\d+");
Matcher m=p.matcher("456 23 5463 1213");
while(m.find()){
System.out.println(m.group()+"at positions"+m.start()+(m.end()-1);
}
}
}
//在匹配操作成功之后,start()返回先前匹配的起始位置的索引,而end()返回所匹配的最后字符的索引加1的值。Matcher.find()方法可以用来查找多个陪陪,find()像迭代器那样前向便利输入字符串。第二个find()能够接收一个整数作为参数,该正数表示字符串中字符的为hi,并以其作为搜索的起点
------- <a href="http://edu.csdn.net/heima" target="blank">android培训</a>、<a href="http://edu.csdn.net/heima" target="blank">java培训</a>、期待与您交流! ----------
详细请查看:<a href="http://edu.csdn.net/heima" target="blank">http://edu.csdn.net/heima/</a>