2017-01-31 5 views
0

J'ai donc travaillé sur un programme pour utiliser le cachet postal pour envoyer des emails via une interface graphique. Quel est mon problème est-il fonctionne et tout, mais j'ai un SubscribedList et un unsubbedList. Ce que j'essaye de réaliser est d'analyser le sous-titre et unsubbed et alors envoyez une chaîne des email contenant l'unsubbed enlevé du subbed et l'envoyez à une autre variable. J'ai moitié atteint ce résultat grâce:Supprimer certains textes de la chaîne

public static void getEmail() throws Exception{ 

File Emailpath = new File(EmailListPath); 
File Unsubpath = new File("c:\\test\\PostMark\\unsubbedEmailList.txt"); 
FileInputStream fis = new FileInputStream(Emailpath); 
InputStreamReader isr = new InputStreamReader(fis); 

FileInputStream unsubInput = new FileInputStream(Unsubpath); 
InputStreamReader unsubisr = new InputStreamReader(unsubInput); 

Scanner readEmail = new Scanner(Emailpath); 
Scanner readUnsub = new Scanner(Unsubpath); 
int i = 0; 
System.err.println("Subbed List: "); 
while (readEmail.hasNext()) { 
    //i++; 
    String line = readEmail.nextLine(); 
    System.err.println(line); 
    EmailAddress = EmailAddress+","+line; 
} 
System.err.println("\nUnsubbed List: "); 
while (readUnsub.hasNext()) { 
    //i++; 
    String line = readUnsub.nextLine(); 
    System.err.println(line); 
    unsubbedEmailAddress = unsubbedEmailAddress+","+line; 
} 
//System.err.println("\n"+EmailAddress); 
unsubbedEmailAddress=unsubbedEmailAddress.substring(1, unsubbedEmailAddress.length()); 
EmailAddress=EmailAddress.substring(1, EmailAddress.length()); 
EmailAddress = EmailAddress.replaceAll(unsubbedEmailAddress,""); 
System.err.println("Subbed:\n"+EmailAddress); 
System.err.println("Unsubbed:\n"+unsubbedEmailAddress); 
System.err.println("\nSending to:\n"+EmailAddress); 

Les deux dernières lignes ne moitié ce que je veux, mais le unsubbed doivent être dans un ordre précis pour éliminer correctement de la chaîne couche sous-jacente.

alors je pensais quelque chose comme ça? Au lieu de cela la chaîne sera lu à partir d'un fichier, mais essentiellement le même travail ...

String subbed = "[email protected],aaronjoyce[email protected],[email protected]", 
       unsubbed = "[email protected]"; 
     String[] subbedArray, unsubbedArray, sendArray = null; 

    subbedArray = subbed.split(","); 
    for(int i = 0;i<=subbedArray.length -1;i++){ 
     //System.err.println("Subbed:"); 
     System.out.println(subbedArray[i]); 
    } 
    System.err.println("\n"); 
    unsubbedArray=unsubbed.split(","); 
    for(int i = 0;i<=unsubbedArray.length-1;i++){ 

     System.out.println(unsubbedArray[i]); 
    } 
    System.err.println("\n"); 
    for(int i = 0;i<=unsubbedArray.length-1;i++){ 
     int j=0; 
     if(subbedArray[i].equals(unsubbedArray[j])) 
      sendArray[i]= unsubbedArray[i]; 
     else 
      for(j = 0;j<=unsubbedArray.length-1;j++){ 
       if(subbedArray[i].equals(unsubbedArray[j])) 
        sendArray[i]= unsubbedArray[i]; 
      } 
     System.out.println(sendArray[i]); 
    } 
+0

de sorte que vous avez 2 fichiers. l'un contient des sous-listes et un e-mail non soumis, mais dans le sous-dossier sont également ceux qui ne sont pas protégés et que vous souhaitez supprimer? – XtremeBaumer

+0

non pas les supprimer mais envoyer ou créer une nouvelle chaîne de la sous-rubrique avec supprimé supprimé .. mais les unsubbed restent dans le sous-fichier aussi penser comme vlid utilisateurs mais les unsubbed ne veulent pas d'offres promotionnelles et bulletins etc. –

+0

okay ici est mon idée. Construire 2 tableaux à partir des fichiers. l'un est subbed l'autre non soumis. maintenant supprimer toutes les entrées de la sous-couche qui est contenue dans un – XtremeBaumer

Répondre

0
String subbed = "[email protected],[email protected],[email protected]", 
      unsubbed = "[email protected]"; 
    ArrayList<String> subbedArray=new ArrayList<String>(); 
    ArrayList<String> unsubbedArray=new ArrayList<String>(); 
    ArrayList<String> sendArray=new ArrayList<String>(); 

    subbedArray = Arrays.asList(subbed.split(",")); 
    unsubbedArray =Arrays.asList(unsubbed.split(",")); 
    for(int i = 0;i<unsubbedArray.size();i++){ 
     for(int j=0;j<subbedArray.size();j++){ 
      if(unsubbedArray.get(i).equals(subbedArray.get(j))){ 
      subbedArray.remove(j); 
      } 
     } 
    } 
    sendArray=subbedArray; 

cela pourrait fonctionner, mais je ne peux pas tester. prenez-le comme une idée et de travailler avec elle