import java.util.HashMap;
import java.util.Map;
import javax.swing.JOptionPane;
public class extenso {
public static void main( String[] args ) {
Map<Integer, String> numeros = new HashMap<Integer, String>();
numeros.put(0, "zero");
String numDigitado ;
// CAPTURANDO INFORMAÇÃO DO USUARIO
numDigitado = JOptionPane.showInputDialog("Digite Numeros Válidos de 0 até 1000");
//TRATAMENTO DE EXCESSAO, CASO O USUARIO DIGITE LETRA OU NUMERO INVÁLIDO!
try {
int cast = Integer.parseInt(numDigitado);
if (cast < 0 || cast > 1000) {
JOptionPane.showMessageDialog(null, "SOMENTE NUMEROS, OBRIGADO!!!");
System.exit(0);
}
} catch (RuntimeException e1) {
JOptionPane.showMessageDialog(null, "SOMENTE NUMEROS, OBRIGADO!!! ");
System.exit(0);
}
//DECLARANO CONTADOR
int cont = 1;
//ITERANDO NA CASA DAS CENTENAS
for (String cent : new String[] {"", "Cento", "Duzentos", "Trezentos", "Quatrocentos", "Quinhentos", "Seiscentos", "Setecentos", "Oitocentos", "Novecentos"}) {
String centena = "";
if ("Cento".equals(cent)) {
numeros.put(cont++, "Cem");
centena = "Cento e ";
} else {
if (!"".equals(cent)) {
numeros.put(cont++, cent);
centena = cent + " e ";
}
}
numeros.put(cont++, centena + "Um");
numeros.put(cont++, centena + "Dois");
numeros.put(cont++, centena + "Tres");
numeros.put(cont++, centena + "Quatro");
numeros.put(cont++, centena + "Cinco");
numeros.put(cont++, centena + "Seis");
numeros.put(cont++, centena + "Sete");
numeros.put(cont++, centena + "Oito");
numeros.put(cont++, centena + "Nove");
numeros.put(cont++, centena + "Dez");
numeros.put(cont++, centena + "Onze");
numeros.put(cont++, centena + "Doze");
numeros.put(cont++, centena + "Treze");
numeros.put(cont++, centena + "Quatorze");
numeros.put(cont++, centena + "Quinze");
numeros.put(cont++, centena + "Dezesseis");
numeros.put(cont++, centena + "Dezessete");
numeros.put(cont++, centena + "Dezoito");
numeros.put(cont++, centena + "Dezenove");
// ITERANDO NA CASA DAS DEZENAS
for (String decimal : new String[] {"Vinte", "Trinta", "Quarenta", "Cinquenta", "Sessenta", "Setenta", "Oitenta", "Noventa"}) {
numeros.put(cont++, decimal);
for(int i = 1; i <= 9; i++) {
numeros.put(cont++, centena + decimal + " e " + numeros.get(i));
}
}
}
numeros.put(cont++, "Mil");
JOptionPane.showMessageDialog(null, "Numero Digitado por Extenso é : " + numeros.get(Integer.parseInt(numDigitado)));
main (args);
System.exit(0);
}
}
Galera,
Boa Tarde, ontem eu estava fazendo esse exercicio, alias um amigo meu do serviço me ajudou …eu entendi a lógica só q eu nao sei explicar muito bem a classe HashMap, e nao entendi muito bem os ultimos for…e detalhe esse trabalho é um da faculdade eu ja postei só q eu expliquei a situação para o professor e ele me pediu para comentar esses trechos para ele, alguem pode me ajudar ???
muito Obrigrado,
Carlos Andrade