Comentario do programa exibir numero por extenso

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

Nesse caso vc tem o que chamamos de ‘For Each’.

for (String variavel : new String[] {"posicao 0", "posicao 1", "posicao 2", "posicao 3"})

Nesse caso vc tem ao lado esquerdo dos ‘:’ o seu vetor ou sua lista.

No lado direito vc vai ter uma variavél que vai passar a valer o conteúdo do seu vetor na posição em que estiver o for.

No caso na primeira passagem pelo for: variavel vai valer “posicao 0”, na 2ª passagem, “posicao 1” e assim por diante.

certo, mais o meu ultimo for esta fazendo oq ali…o contador…ele esta contando de 1 ate 9 e exibi junto a centena ea dezena ?

tenho q comentar essas linhas mais eu nao manjo muito e é só ate as 18:00

[quote=carlos andrade]certo, mais o meu ultimo for esta fazendo oq ali…o contador…ele esta contando de 1 ate 9 e exibi junto a centena ea dezena ?

tenho q comentar essas linhas mais eu nao manjo muito e é só ate as 18:00

[/quote]

Nesse caso

for(int i = 1; i <= 9; i++) { 
                    //cont++ -> incrementada em 1 a cada passagem pelo for  e adiciona na coleção essa posição 
                    //centena + decima + "e" vai adicionar algo do tipo: Cento e Quarenta e
                    //numero.get(i) vai pegar o valor de i na passagem do for: o valor que vai de 1 a 9, então pegará em numeros o indice que vale esse valor e colocará seu conteúdo
                    numeros.put(cont++, centena + decimal + " e " + numeros.get(i));      
  
                }

No final acredito que vc terá algo como: Cento e vinte e um, por exemplo, o ‘um’ seria o resultado encontrado em numeros.get(i)