Esempio n. 1
0
  public String porExtenso() {
    StringBuffer numeroPorExtenso = new StringBuffer();

    String irregulares = trataIrregulares();
    if (!irregulares.isEmpty()) return irregulares.toString();

    Centena centena = Centena.apartirDe(numero);
    Dezena dezena = Dezena.apartirDe(numero);
    Unidade unidade = Unidade.apartirDe(numero);

    if (centena.existe()) numeroPorExtenso.append(centena.porExtenso());

    if (centena.existe() && (dezena.existe() || unidade.existe())) numeroPorExtenso.append(" ");

    if (dezena.existe()) numeroPorExtenso.append(dezena.porExtenso());

    if (dezena.existe() && unidade.existe()) numeroPorExtenso.append(" e ");

    if (numeroPorExtenso.length() == 0 || unidade.existe())
      numeroPorExtenso.append(unidade.porExtenso());

    return numeroPorExtenso.toString();
  }