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