2017-01-31 18 views
0

私はGUIを使って電子メールを送信するために郵便受けを使用するためにプログラマーに取り組んできました。何が問題なのか、問題ないのですが、SubscribedListとunsubbedListがあります。文字列から特定のテキストを削除する

私が達成しようとしているのは、サブベッドをスキャンしてサブブレブして、サブバウンドから取り除かれたサブバウンドを含む電子メールの文字列を送信し、別の変数に送信することです。行の最後のカップルは半分私が欲しいものを行いますが、unsubbedが適切に下塗りした文字列から削除する特定の順序である必要はあり

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

:私は半分にすることによって、これを達成しました。

だから私はこのようなことを考えていましたか?代わりに、文字列ファイルから読み込むが、基本的に同じ仕事をすることになる...

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

2つのファイルがあります。 1つはsubbedと1つのunsubbed電子メールが含まれていますが、subbedにもunsubbedのものですし、それらを削除したいですか? – XtremeBaumer

+0

これらのファイルを削除しないでくださいが、サブブローの新しい文字列を送信または作成することはできませんが、サブファイル内に残されているのは、vlidユーザーのように考えられますが、unsubbedはプロモーションオファーやニュースレターなどありません。 –

+0

okay here私の考えです。ファイルから2つの配列を構築します。 1つは、他の1つを下塗りされています。ここでunsubbedに含まれているsubbedからすべてのエントリを削除 – XtremeBaumer

答えて

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; 

が、これはうまくいくかもしれないが、私はそれをテスト傾けます。それをアイデアとして取り、それを使って作業してください。

関連する問題