⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 strdeal.java

📁 一个java实现的有界面的email发送程序。可以从网络上抓取email。也可以从文件中读取email
💻 JAVA
字号:
package com.code10.basecomponent;


import java.io.IOException;
import java.util.ArrayList;
import java.util.regex.Pattern;


public class strDeal {
	
	private static String urlPoint1 = "href=\"";
	private static String urlPoint2 = "\"";
	private static String mailPont1 = "@";
	private static String mailPont2 = "[\\w\\.\\-]"; //正则表达匹配邮件地址
	private static String standerPoint1 = "mailto:";
	private static String standerPoint2 = ">";
	private static String name1 = ">";
	private static String name2 = "<";

	
/**
	  * 流转字符函数
	  * @param inputHtml
	  * @return
	  * @throws IOException
	   
public static String streamToString(InputStream inputHtml) {
            StringBuffer out = new StringBuffer();
	        byte[] b = new byte[4096];
	        for (int n; (n = inputHtml.read(b)) != -1;) {
	            out.append(new String(b, 0, n));
	            return out.toString();
	    }**/
	 
	
	/**链接处理函数
	 * StartFind开始找到匹配的位置
	 * RightUrl匹配结束的位置
	 * arrUrl为返回的URL的栈
	 * @param strContent
	 * @return
	 * @throws IOException 
	 */
    public static ArrayList<String> parseURL(String strContent){
        ArrayList<String> arrUrl = new ArrayList<String>();
        String myUrl = strContent;
    try{
    	int StartFind=0;
     	StartFind = myUrl.indexOf(urlPoint1,StartFind);
    	while(StartFind!=-1)	
    	{    
    		int RightUrl  = myUrl.indexOf(urlPoint2,StartFind+urlPoint1.length()+1);
        	if(RightUrl <= StartFind+urlPoint1.length()){
        		break;
        	}
        	else {
            	String OkUrl =  myUrl.substring(StartFind+urlPoint1.length(),RightUrl);
                arrUrl.add(OkUrl.trim());
                StartFind = myUrl.indexOf(urlPoint1,RightUrl);
        	} 
        }
    }
 	catch(Exception e){
 		e.printStackTrace();
 	}
		return arrUrl;
    }
    
    /**论坛混杂邮件处理函数
     * midFind为@字符的位置
     * leftEmail, rightEmail为左右空格的位置
     * leftBcak为@开始到左边空格反转字符串t
     * l,r有逻辑错误,需要注意,哎
     * @param strEmail
     * @return
     */
    public static ArrayList<String>  parseEmail(String strContent){
    	String myEmail = strContent;
     	int midFind=0;
     	int cut = 0;
     	int r=0;
     	int l=0;
     	int rightRaise;
     	ArrayList<String> arrEmail = new ArrayList<String>();
     	
     	StringBuffer backString =new StringBuffer();
     	
     	midFind = myEmail.indexOf(mailPont1,midFind);
     	try{
     	  	while(midFind!=-1)	
        	{   l = 0;
        		r = 0;
        		if(midFind < 50){
        			 cut = midFind;
        		}
        		else 
        		{
        			 cut =50;
        		}
        		
        		StringBuffer leftString = backString.append(myEmail.substring(midFind-cut,midFind));
        		String leftEmail = leftString.reverse().toString();//反转@字符的前cut个字符
        		Pattern pn = Pattern.compile( mailPont2 );
        		
        		//int rightRaise = myEmail.indexOf(" ",midFind);
        		if(myEmail.length()-midFind <50)
        	     {
        			rightRaise = myEmail.length();
        			}
        		else {
        			rightRaise = midFind+50;
        		}
        		String RightEmail  = myEmail.substring(midFind,rightRaise);
        		
        		for(int i=0;i<=leftEmail.length();i++){
        			 String hack = leftEmail.substring(i,i+1);
        			 
        			 boolean b = pn.matcher( hack ).matches();
        			
        			 if(b==false){
        				 break;}
        			 else{
        			    l=i;
        			    }
        			 
        		}
        		
        		
        		
        		for(int j=1;j<rightRaise-midFind;j++)
        		{
            		String hack = RightEmail.substring(j,j+1);
            	
            		boolean b = pn.matcher( hack ).matches();
            		
            		 if(b==false){
        				 break;}
            		 
            		 r=j;
        			     
        		}
        		
        		
        		
//        		int LeftEmail  =  leftBcak.indexOf(mailPont2,0);//比较反转后第一个空格的位置
//        		
              String OkEmail =  myEmail.substring(midFind-l-1 ,midFind+r+1);
              
            if( midFind == midFind+r || midFind == midFind-l){
            	
            }
            else {
               
               arrEmail.add(OkEmail.trim());
               System.out.println(OkEmail);
               }
            
           // System.out.println(OkEmail);	
          	midFind = myEmail.indexOf(mailPont1,midFind+2);
        	}
        	
         	}
     	catch(Exception e){
     		e.printStackTrace();
     	}
		return arrEmail;
    }
    
    
    
    /**
     * 处理比较标准的注册邮件,用户等信息.比如<a href = mailto: dshfk@sdf.com>aaa</a>这种格式 
     * name1为名字开始字符,name2名字结束字符
     * i为用户的ID,为了避免跟数据库中的冲突,有调用函数传入
     * 返回各个包含名字,邮件,ID的对象
     * @param strContent
     * @return
     */
    public static ArrayList<Entry>  standardEmail(String strContent ){
    	String myEmail = strContent;
     	int startFind=0;
     	ArrayList<Entry> arrEmail = new ArrayList<Entry>();
     	
     	
     	startFind = myEmail.indexOf(standerPoint1,startFind);
     	try{
    	while(startFind!=-1)	
    	{   
    		//i++;	
    		int LeftEmail  =  startFind;
        	int RightEmail  = myEmail.indexOf(standerPoint2,startFind);
        	
        	int LeftName  =  RightEmail;
        	int RightName =  myEmail.indexOf(name2,LeftName);
        	
        	String OkEmail =  myEmail.substring(LeftEmail + standerPoint1.length() ,LeftName);
        	String OkName  =  myEmail.substring(LeftName + name1.length(),RightName);
        	
         	System.out.println(OkName);
         	
        	Entry enTmp = new Entry();
			enTmp.setEmail(OkEmail.trim());
			enTmp.setUsername(OkName.trim());
			//enTmp.setId(i);
			arrEmail.add(enTmp);
        	
			startFind = myEmail.indexOf(mailPont1,RightEmail);
    	}
     	}
     	catch(Exception e){
     		e.printStackTrace();
     	}
		return arrEmail;
    }
    
    
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -