这个程序将从一个名为source.txt的文档中匹配邮箱帐号,然后,将文档中所有的邮箱全部都收集起来存储到另一个文件mailCollect.txt中。
利用了Java的正则表达式。
package com.xujin;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class FindMail{
public static void main(String...args) throws IOException{
FindMail findmail = new FindMail();
findmail.matchMail(findmail.readFile());
}
private String readFile() throws IOException{
BufferedReader in = new BufferedReader(new FileReader("source.txt"));
String s;
StringBuilder sb = new StringBuilder();
while((s = in.readLine()) != null)
sb.append(s + "\n");
in.close();
return sb.toString();
}
private void matchMail(String source) throws IOException{
String regex = "[a-zA-z\\.[0-9]]*@[a-zA-z[0-9]]*\\.com";
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(source);
PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter("mailCollect.txt")));
String mail;
while(m.find()){
mail = "[No." + num++ + "] " + m.group().toString();
//System.out.println(mail);
out.println(mail + "\n");
}
out.close();
}
private static int num = 1;
}
result: