Olá!
Segue minha resolução:
- Criação da classe Contatos, com os atributos nome e contato. A classe utiliza regex para evitar a inserção de números inválidos no campo telefone:
package br.com.alura.exercicios;
import java.util.regex.Pattern;
public class Contatos {
private String nome;
private String telefone;
private static final String TELEFONE_REGEX =
"^\\+?\\d{0,3}?\\s?\\(?\\d{2}\\)?\\s?9?\\d{4}-?\\d{4}$";
private static final Pattern TELEFONE_PATTERN =
Pattern.compile(TELEFONE_REGEX);
public Contatos(String nome, String telefone) {
this.nome = nome;
setTelefone(telefone);
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getTelefone() {
return telefone;
}
public void setTelefone(String telefone) {
if (telefone == null ||!TELEFONE_PATTERN.matcher(telefone).matches()){
throw new IllegalArgumentException("Telefone Inválido: " + telefone);
}
this.telefone = telefone;
}
@Override
public String toString() {
return String.format("%s - %s", nome,telefone);
}
}
- Criando a lista e rodando a aplicação:
import br.com.alura.exercicios.Contatos;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.IntStream;
public class Main {
public static void main(String[] args) {
List<Contatos> listaContatos = new ArrayList<Contatos>();
listaContatos.add(new Contatos("João Silva", "(11) 99999-0000" ));
listaContatos.add(new Contatos("Luana Santos", "(21) 98888-0000"));
listaContatos.add(new Contatos("Pedro Oliveira", "(31) 97777-0000"));
//listaContatos.add(new Contatos("Victor Moreira", "abc"));
for(int i = 0; i < listaContatos.size(); i++){
System.out.println((i+1) + "-" + listaContatos.get(i));
}
}
}