`
leebot
  • 浏览: 5764 次
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

黑马训练营——字符串操作

阅读更多

------- <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>

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics