2017-01-31 10 views
0

Итак, я работал над программой для использования почтового штемпеля для отправки писем через графический интерфейс. Какая моя проблема - все работает, но у меня есть SubscribList и unsubbedList.Удалить определенный текст из строки

То, что я пытаюсь достичь, - это сканировать суббэнд и пропустить, а затем отправить строку писем, содержащих снятые с суббэка, и отправить их другой переменной. Я половина достиг этого:

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

Последних пару строк половины делает то, что я хочу, но unsubbed должна быть в определенном порядке, чтобы правильно удалить из подкровать строки.

так что я думал что-то вроде этого? Вместо этого строка будет читаться из файла, но в основном, делают ту же работу ...

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 файла. один содержит суббэнд и одну неподчиненную электронную почту, но в подпоследователе также есть неработающие, и вы хотите их удалить? – XtremeBaumer

+0

нет, не удаляйте их, а отправляйте или создавайте новую строку подслоя с незащищенным удаленным .. но неподдерживаемые остаются в субфайле и думают об этом как о пользователях vlid, но неподдерживаемые не хотят рекламных предложений и информационных бюллетеней и т. Д. –

+0

okay here это моя идея. построить 2 массива из файлов. один - подбитый, другой - неподписанный. теперь удаляйте каждую запись из подслоя, содержащуюся в unsubbed – 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; 

это может работать, но я не могу проверить это. принимайте это за идею и работайте с ней

 Смежные вопросы

  • Нет связанных вопросов^_^