2017-01-31 3 views
0

Also habe ich an einem Programm gearbeitet, Poststempel verwenden, um E-Mails über eine GUI zu senden. Was mein Problem ist, es funktioniert und alle, aber ich habe eine SubscribedList und eine unsubbedList.Entfernen Sie einen bestimmten Text von String

Was ich versuche zu erreichen, ist das Subbed und unsubbed zu scannen und dann eine Kette der E-Mails, die das nicht subsubbed entfernt enthalten, aus dem Subbed zu senden und an eine andere Variable zu senden. Ich habe die Hälfte erreichen dies durch:

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); 

Die letzten paar Zeilen Hälfte tut, was ich will, aber die nicht grundiertes hat in einer bestimmten Reihenfolge sein, um richtig aus dem substrierten String zu entfernen.

also dachte ich so etwas? Stattdessen würde der String gelesen wird aus einer Datei in aber im Grunde die gleiche Arbeit ...

String subbed = "[email protected],[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

also hast du 2 Dateien. eine enthält subbed und eine nicht subsumierte Emails, aber in der Subbed sind auch die unsubbed und du willst sie entfernen? – XtremeBaumer

+0

nein nicht entfernen sie aber senden oder erstellen Sie eine neue Zeichenfolge der subbed mit unsubbed entfernt .. aber die unsubbed bleiben in der Unterdatei auch daran denken, wie Vlid-Benutzer, aber die unsubbed nicht wollen, Werbeangebote und Newsletter etc .. –

+0

okay hier ist meine Idee. Erstellen Sie 2 Arrays aus den Dateien. einer ist mit einem anderen unbelastet belegt. jetzt entferne jeden Eintrag aus dem Subbed, der in einem unsubbed – XtremeBaumer

Antwort

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; 

dies funktionieren könnte, aber ich kann es nicht testen. Nimm es als Idee und arbeite damit

Verwandte Themen