Estou tentando realizara validação das informações que recebi de um arquivo txt no meu método onde ele pega o valor total de outra classe e divide entre a quantidade de clientes que contém na lista. Por enquanto, eu consigo fazer a validação e mostrar uma mensagem de erro, mas não estou conseguindo excluir esse e-mail inválido do meu ArrayList para que não seja incluso junto com os e-mails válidos.
List<String> emailList = new ArrayList<>();
try (BufferedReader buff = new BufferedReader(new FileReader("listadeemail.txt"))) {
while ((linhaEm = buff.readLine()) != null) {//lê e armazena os valores
emailList.add(linhaEm);
}
//validação de e-mail
String regex = "^[a-zA-Z0-9_!#$%&'*+/=?`{|}~^-]+(?:\\.[a-zA-Z0-9_!#$%&'*+/=?`{|}~^-]+)*@[a-zA-Z0-9-]+(?:\\.[a-zA-Z0-9-]+)*$";
Pattern pattern = Pattern.compile(regex);
//Tamanho da lista de e-mails
tamLista = emailList.size();
//Divisão do valor da lista com a quantidade de e-mails
total = (subtotal()/tamLista)/100;
//Captura o resto da divisão
restoTotal = (subtotal()%tamLista);
System.out.println(total +" "+ restoTotal);
for(String email: emailList) {
Matcher matcher = pattern.matcher(email);//validação e-mail
if(matcher.matches() == true){
//Criação do Map para exibição de dicionário
Map<String, Integer> emailMap = new HashMap<>();
emailMap.put(email, total);
//Exibição dos dados com forEach utilizado em Java 8
emailMap.forEach((emailChave, totalValor) -> System.out.println("A pessoa: " + emailChave + " está devendo " + totalValor + " reais."));
}else{
System.out.println("E-mail inválido!");
tamLista--;
}
}
}catch(FileNotFoundException e){//validação do arquivo
System.out.println("Erro com o arquivo! Por favor, escolha um arquivo diferente.");
}
Estava tentando fazer com o remove() e ele dava erro no e-mail inválido e não terminava de percorrer a lista