/**
文件名:EmailSeeker.java
描述: 从给定的字符串中抓取Email地址,返回一个字符串数组
作者:慈勤强
Email :cqq1978@yeah.net
**/
import java.io.*;
import java.util.*;
class EmailSeeker
{
public String[] getEmail(String strContent)
{
ArrayList al=new ArrayList();
String availableChar="1234567890abcdefghijklmnopqrstuvwxyz_.@";
String strPrefix="";
String strLast="";
int i,j,k,m;
i=j=k=m=0;
while(true)
{
i=strContent.indexOf("@",m);
if(i<1) break;
for(j=1;j<30;j++)
{
if(i<j) break;
String singleChar=strContent.substring(i-j,i-j+1);
if(availableChar.indexOf(singleChar)<1) break;
}
for(k=1;k<30;k++)
{
if(i+k==strContent.length()) break;
String singleChar=strContent.substring(i+k,i+k+1);
if(availableChar.indexOf(singleChar)<1) break;
}
strPrefix=strContent.substring(i-j+1,i);
strLast=strContent.substring(i+1,i+k);
al.add(strPrefix+"@"+strLast);
m=i+1;
}
String[] s=(String[])al.toArray(new String[al.size()]);
return s;
}
public static void main(String[] args)
{
EmailSeeker es=new EmailSeeker();
String[] ss=es.getEmail("mail to :cqq@263.net fdasfasf qqci@ddd.net ssmail to :cqq@263.net fdasfasf qqci@ddd.net dd@usa.net ss");
for(int i=0;i<ss.length;i++)
{
System.out.println(ss[i]);
}
}
}