Categorias

Transformando um número em numeração extensa com Java

Com este código simples, é possível converter um número para seu equivalente em extenso utilizando Java.

import java.util.Scanner;

public class Teste{
	
	
	public static void main(String args[]){

		int n=0,resto1,resto2,div1,div2;
		String centena="",dezena="",unidade="";
		System.out.println("Tecle -1 para sair:");
		System.out.print("Digite um numero entre 0 e 1000: ");
		
		Scanner scanner = new Scanner(System.in);    
		n = scanner.nextInt();
		
			while(n<=1000 && n!=-1){
				resto1 = n%100;
				div1 = n/100;
				resto2 = resto1%10;
				div2 = resto1/10;

					switch(div1){
						case 1 : centena = "cento"; break;
						case 2 : centena = "duzentos"; break;
						case 3 : centena = "trezentos"; break;
						case 4 : centena = "quatrocentos"; break;
						case 5 : centena = "quinhentos"; break;
						case 6 : centena = "seiscentos"; break;
						case 7 : centena = "setecentos"; break;
						case 8 : centena = "oitocentos"; break;
						case 9 : centena = "novecentos"; break;
					}

				if(resto1 !=0 && resto1>10 && resto1<20) {
					switch(resto1){
						case 11: dezena = "onze"; break;
						case 12: dezena = "doze"; break;
						case 13: dezena = "treze"; break;
						case 14: dezena = "quatorze"; break;
						case 15: dezena = "quinze"; break;
						case 16: dezena = "dezesseis"; break;
						case 17: dezena = "dezessete"; break;
						case 18: dezena = "dezoito"; break;
						case 19: dezena = "dezenove"; break;
					}
				}else{
					switch(div2){
						case 1 : dezena = "dez"; break;
						case 2 : dezena = "vinte"; break;
						case 3 : dezena = "trinta"; break;
						case 4 : dezena = "quarenta"; break;
						case 5 : dezena = "cinquenta"; break;
						case 6 : dezena = "sessenta"; break;
						case 7 : dezena = "setenta"; break;
						case 8 : dezena = "oitenta"; break;
						case 9 : dezena = "noventa"; break;
					}
				}

				if(resto1>=20 || n<10 || resto1<10){
					switch(resto2){
						case 1 : unidade = "um"; break;
						case 2 : unidade = "dois"; break;
						case 3 : unidade = "tres"; break;
						case 4 : unidade = "quatro"; break;
						case 5 : unidade = "cinco"; break;
						case 6 : unidade = "seis"; break;
						case 7 : unidade = "sete"; break;
						case 8 : unidade = "oito"; break;
						case 9 : unidade = "nove"; break;
					}
				}

				if(n==0)
					System.out.println("zero");
				else{
					if(n==1000)
						System.out.println("mil"); 
					else{
						if(n==100)
							System.out.println("cem");
						else{
							if(n>100 && resto1<10 && resto1!=0)

								System.out.println(centena + " e " + unidade);
							else{
								if(n>100 && resto1 ==0)
									System.out.println(centena);
								else {
									if(n>100 && resto1 !=0 && resto2 !=0 && resto1>=20)
										System.out.println(centena + " e " + dezena + " e " + unidade);
									else{
										if(n>100 && resto1 !=0 && resto2 ==0)
											System.out.println(centena + " e " + dezena);
										else{
											if(n>100 && resto1 !=0)
												System.out.println(centena + " e "+ dezena);
											else{
												if(n<100 && resto1 !=0 && resto2 ==0)
													System.out.println(dezena);
												else{
													if(n>20 && resto1 !=0 && resto2 !=0)
														System.out.println(dezena + " e " + unidade);
													else{
														if(n<10)
															System.out.println(unidade);
														else
															System.out.println(dezena);
														}
													}
												}
											}
										}
									}
								}
							}
						}
					}
				System.out.println("");
				System.out.print("Digite um numero: ");
				n = scanner.nextInt();
									} //fim do while */
	}
}