Acho que ficou interessante!!!
public static void main(String[] args) {
String cpf = "51720155232";
String nome = "João";
try {
validaCPF(new CPFValidator(), cpf);
System.out.println("Prezado " + nome + " será cobrando o valor de R$" + formatoEmCifras().getNumber() + "(" + conversorPorExtenso(new BigDecimal( "900.0")) + ")" + " referente à sua fatura do cartão de crédito");
}catch (InvalidStateException e) {
System.out.println("Caro "+ nome + " atualize seus dados pois estão incorretos, caso precise de ajuda entre em contato com o suporte");
}
}
private static void validaCPF(Validator<String> valida, String documento) {
valida.assertValid(documento);
}
private static String conversorPorExtenso(BigDecimal valor) {
NumericToWordsConverter conversorExtenso = new NumericToWordsConverter(new FormatoDeReal());
return conversorExtenso.toWords(valor.doubleValue());
}
private static MonetaryAmount formatoEmCifras() {
CurrencyUnit moeda = Monetary.getCurrency("BRL");
Money valorDaParcela = Money.of(75, moeda);
return valorDaParcela.multiply(12);
}
}