domingo, 28 de febrero de 2016

num2Letras.java

Y bueno! Después de mucho sin publicar nada, por pereza sobre todo. Quiero dejar hoy, un código que pra mi gusto me costo demasiado hacer, pero lo hice!!!!!! El siguiente código toma una una cantidad la escribe con letra.
 Ejemplo:
 101101 : Ciento Un Mil Ciento Uno 
100001 : Cien Mil Uno 
 101010 : Ciento Un Mil Diez 

Este algoritmo descompone la cantidad tomando carácter por carácter y metiendolos en un Array, invierte el array para empezar a procesar las unidades las primeras y finalmente, hace el recorrido comparativo para escribir la cantidad con letra



package Fer.Test;

import java.util.ArrayList;

public class num2Letras {

 public static void main(String[] args) {
  System.out.println(num2Text(101101));
  System.out.println(num2Text(100001));
  System.out.println(num2Text(101010));
 }
 
  public static String num2Text (int cant){
   ArrayList   cantidad  = new ArrayList ();
   ArrayList   xreverse  = new ArrayList ();
         String     smillon   = "";
         String     scmiles   = "";
         String     sdmiles   = "";
         String     smiles    = "";
         String     scientos   = "";
         String     sdecenas  = "";
         String     sunidades   = "";
         int mile = 0;
         int dmil = 0;
         int cmil = 0;
         
         String cantcadena = String.valueOf(cant);
         int m=0;
         for(int i=0;i invertirArray(ArrayList  cantcadena){
   ArrayList reverse =  new ArrayList (); 
   for (int x=cantcadena.size()-1; x > -1; x--){
    reverse.add(cantcadena.get(x));
   }
   return reverse;
  }
 
  private static String escribeMillones (int num) {
  String millon = null;
  switch (num) {
      case 9: millon = "Nueve Millones";
        break;
      case 8: millon = "Ocho Millones";
     break;
      case 7: millon = "Siete Millones";
     break;
      case 6: millon = "Seis Millones";
        break;
      case 5: millon = "Cinco Millones";
        break;
      case 4: millon = "Cuatro Millones";
        break;
      case 3: millon = "Tres Millones";
        break;
      case 2: millon = "Dos Millones";
        break;
      case 1: millon = "Un Millon";
        break;
      //case 0: millon = "";
    // break;
        }
  return millon;
  }

  private static String escribeMilCentenas (int num,int dec, int uni) {
   String centenas = "";
   switch (num) {
       case 9: centenas = " Novecientos";
        break;
       case 8: centenas = " Ochosientos";
      break;
       case 7: centenas = " Setecientos";
      break;
       case 6: centenas = " Seiscientos";
         break;
       case 5: centenas = " Quinientos";
         break;
       case 4: centenas = " Cuatrocientos";
         break;
       case 3: centenas = " Trescientos";
         break;
       case 2: centenas = " Doscientos";
         break;
       case 1: if (dec + uni >0){
           centenas = " Ciento";
           } else
           centenas = " Cien";
         break;
       case 0: centenas = "";
      break;
         }
   return centenas;
  }
        
  private static String escribeMilDecenas (int dec, int uni) {
    String decenas = null;
    switch (dec) {
        case 9: if (uni>0){
      decenas = " Noventa y"+ escribeMilUnidades(uni);
      }else decenas = " Noventa";
      break;
        case 8: if (uni>0){
      decenas = " Ochenta y"+ escribeMilUnidades(uni);
      }else decenas = " Ochenta";
      break;
        case 7: if (uni>0){
      decenas = " Setenta y"+ escribeMilUnidades(uni);
      }else decenas = " Setenta";
      break;
        case 6: if (uni>0){
      decenas = " Sesenta y"+ escribeMilUnidades(uni);
      }else decenas = " Sesenta";
      break;
        case 5: if (uni>0){
      decenas = " Cincuenta y"+ escribeMilUnidades(uni);
      }else decenas = " Cincuenta";
      break;
        case 4: if (uni>0){
      decenas = " Cuarenta y"+ escribeMilUnidades(uni);
      }else decenas = " Cuarenta";
     break;
        case 3: if (uni>0){
           decenas = " treinta y"+ escribeMilUnidades(uni);
          }else decenas = " Treinta";
          break;
        case 2: if (uni>0){
       decenas = " Veinte y"+ escribeMilUnidades(uni);
      }else decenas = " Veinte";
      break;
        case 1: switch (uni){
          case 5: decenas = " Quince";
            break;
          case 4: decenas = " Catorce";
            break;
          case 3: decenas = " Trece";
            break;
          case 2: decenas = " Doce";
            break;
          case 1: decenas = " Once";
            break;
          default: if (uni>0){
            decenas = " Diez y"+ escribeMilUnidades(uni);
            }else decenas = " Diez";
            }
            break;
        case 0: decenas =  escribeMilUnidades(uni);
          break;
          }
   return decenas;
     }
  
  private static String escribeMilUnidades (int num) {
         String unidades = null;
         switch (num) {
           case 9: unidades = " Nueve";
               break;
           case 8: unidades = " Ocho";
          break;
           case 7: unidades = " Siete";
          break;
           case 6: unidades = " Seis";
             break;
           case 5: unidades = " Cinco";
             break;
           case 4: unidades = " Cuatro";
             break;
           case 3: unidades = " Tres";
             break;
           case 2: unidades = " Dos";
             break;
           case 1: unidades = " Un";
             break;
           case 0: unidades = "";
          break;
             }
   return unidades;
        }   
 
  private static String escribeCentenas (int num,int dec, int uni) {
  String centenas = null;
  switch (num) {
      case 9: centenas = " Novecientos";
       break;
      case 8: centenas = " Ochosientos";
     break;
      case 7: centenas = " Setecientos";
     break;
      case 6: centenas = " Seiscientos";
        break;
      case 5: centenas = " Quinientos";
        break;
      case 4: centenas = " Cuatrocientos";
        break;
      case 3: centenas = " Trescientos";
        break;
      case 2: centenas = " Doscientos";
        break;
      case 1: if (dec + uni>0){
        centenas = " Ciento";
        } else
        centenas = " Cien";
        break;
      case 0: centenas = "";
     break;
        }
  return centenas;
 }

  private static String escribeDecenas (int dec, int uni) {
   String decenas = null;
   switch (dec) {
       case 9: if (uni>0){
     decenas = " Noventa y"+ escribeUnidades(uni);
     }else decenas = " Noventa";
     break;
       case 8: if (uni>0){
     decenas = " Ochenta y"+ escribeUnidades(uni);
     }else decenas = " Ochenta";
     break;
       case 7: if (uni>0){
     decenas = " Setenta y"+ escribeUnidades(uni);
     }else decenas = " Setenta";
     break;
       case 6: if (uni>0){
     decenas = " Sesenta y"+ escribeUnidades(uni);
     }else decenas = " Sesenta";
     break;
       case 5: if (uni>0){
     decenas = " Cincuenta y"+ escribeUnidades(uni);
     }else decenas = " Cincuenta";
     break;
       case 4: if (uni>0){
     decenas = " Cuarenta y"+ escribeUnidades(uni);
     }else decenas = " Cuarenta";
    break;
       case 3: if (uni>0){
          decenas = " treinta y"+ escribeUnidades(uni);
         }else decenas = " Treinta";
         break;
       case 2: if (uni>0){
      decenas = " Veinte y"+ escribeUnidades(uni);
     }else decenas = " Veinte";
     break;
       case 1: switch (uni){
         case 5: decenas = " quince";
           break;
         case 4: decenas = " catorce";
           break;
         case 3: decenas = " trece";
           break;
         case 2: decenas = " doce";
           break;
         case 1: decenas = " once";
           break;
         default: if (uni>0){
           decenas = " Diez y"+ escribeUnidades(uni);
            }else decenas = " Diez";
       break;
         }
         break;
       case 0: decenas =  escribeUnidades(uni);
         break;
         }
  return decenas;
    }
  
  private static String escribeUnidades (int num) {
        String unidades = null;
        switch (num) {
          case 9: unidades = " Nueve";
              break;
          case 8: unidades = " Ocho";
         break;
          case 7: unidades = " Siete";
         break;
          case 6: unidades = " Seis";
            break;
          case 5: unidades = " Cinco";
            break;
          case 4: unidades = " Cuatro";
            break;
          case 3: unidades = " Tres";
            break;
          case 2: unidades = " Dos";
            break;
          case 1: unidades = " Uno";
            break;
          case 0: unidades = "";
         break;
            }
  return unidades;
       }       
}

No hay comentarios:

Publicar un comentario