黑马训练营——字符串操作
------- android培训、java培训、期待与您交流! ----------
由于最后一天的正则表达式主要的特性还是封装的对字符串的操作,所以就综合到字符串这篇日记里来,这样更能体现出正则表达式的简便。
String 对象是不可变的。每一个修改String值的方法,实际上都是重新创建了一个全新的String对象。
StringBuiler对象是不可变的,我们可以给String对象加任意多的别名,因为String对象具有只读特性.
StringBuilder线程不安全,StringBuffer是线程安全的,但是StringBuilder由于是线程不安全的所以速度上有优势。
public class Test{public String implicit(String[]fields){String s="";for(int i=0;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,并以其作为搜索的起点
------- android培训、java培训、期待与您交流! ----------
详细请查看:http://edu.csdn.net/heima/
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
