[quote="javaeye"][size=medium] 因为做的是网页数据抓取工作,相当多的时候是对字符串的处理工作。所以常用的类是JAVA中的String类、Pattern类、Matcher类了。其中String类的trim()方法和Matcher类的matches()方法,下面我们来讲讲它们的作用和注意地方。
[/size][/quote]
[quote="javaeye"][size=medium] 从上面的结果中我们可以看到:
[color=red]1.trim()方法是不能去除字符串两端的全角空格,即中文空格
2.matches方法是不能匹配含有换行符和回车符的字符串的。[/size][/color][/quote]
[/size][/quote]
以下是测试的类代码
class A{
public static void main(String[] args) {
A a=new A();
a.testTrim();
a.testRegex();
}
public void testTrim(){
String str[]=new String[4];
str[0]=" this is test method trim ";
str[1]=" this is test method trim ";
str[2]="\t this is test method trim \t";
str[3]=" \r\n this is test method trim \r\n\t ";
System.out.println("下面是来检测String中的trim()函数能去除那些字符:\n");
for (int i = 0; i < str.length; i++) {
System.out.println("|"+str[i].trim()+"|");
}
}
public void testRegex(){
String str[]=new String[4];
str[0]="\r\naaaaAAaaa\r\n";
str[1]=" aaaaBBaaa ";
str[2]=" aaaaCCaaa ";
str[3]="\taaaaDDaaa\t";
Pattern p=Pattern.compile(".*([A-Z]{2}).*");
System.out.println("\n没有在每个数组元素加trim()函数之后的结果是:\n");
for (int i = 0; i < str.length; i++) {
Matcher matcher=p.matcher(str[i]);
if(matcher.matches()){
System.out.println("匹配了第 "+i+" 元素,其值是:"+matcher.group(1));
}
else{
System.out.println("匹配第 "+i+" 元素失败");
}
}
System.out.println("\n在每个数组元素上加上trim()函数之后的结果是:\n");
for (int i = 0; i < str.length; i++) {
Matcher matcher=p.matcher(str[i].trim());
if(matcher.matches()){
System.out.println("匹配了第 "+i+" 元素,其值是:"+matcher.group(1));
}
else{
System.out.println("匹配第 "+i+" 元素失败");
}
}
}
}
//以下是代码运行的结果:
下面是来检测String中的trim()函数能去除那些字符:
| this is test method trim |
|this is test method trim|
|this is test method trim|
|this is test method trim|
没有在每个数组元素加trim()函数之后的结果是:
匹配第 0 元素失败
匹配了第 1 元素,其值是:BB
匹配了第 2 元素,其值是:CC
匹配了第 3 元素,其值是:DD
在每个数组元素上加上trim()函数之后的结果是:
匹配了第 0 元素,其值是:AA
匹配了第 1 元素,其值是:BB
匹配了第 2 元素,其值是:CC
匹配了第 3 元素,其值是:DD
[quote="javaeye"][size=medium] 从上面的结果中我们可以看到:
[color=red]1.trim()方法是不能去除字符串两端的全角空格,即中文空格
2.matches方法是不能匹配含有换行符和回车符的字符串的。[/size][/color][/quote]