Código de Java - Convertir a números romanos

Imágen de perfil

Convertir a números romanosgráfica de visualizaciones


Java

Publicado el 24 de Mayo del 2017 por Administrador (718 códigos)
22.763 visualizaciones desde el 24 de Mayo del 2017
Este código muestra como convertir cualquier numero inferior a 10.000 a su valor en números romanos.

Se divide en notación desarrollada en sus respectivos órdenes (unidades, decenas, centenas y millares) y se obtiene su respectivo valor en romano, remplazando cada orden

Requerimientos

Netbeans

Versión 1.0

Actualizado el 29 de Julio del 2017 (Publicado el 24 de Mayo del 2017)gráfica de visualizaciones de la versión: Versión 1.0
22.764 visualizaciones desde el 24 de Mayo del 2017
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella


Forma parte de EDDYBEYOND
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
import java.util.Scanner;
/**
 * 
 * @author EDDYBEYOND
 *
 */
public class NumerosRomanos {
   static final String INSTRUCCIONES = "Introduzca un decimal menor a 9999 o un número romano válido:";
   static final String ERROR = "El numero introducido es incorrecto";
   public static int millares = 0, centenas = 0, decenas = 0, unidades = 0;
   public static String [][] romanos={{"","I","II","III","IV","V","VI","VII","VIII","IX"},
         {"","X","XX","XXX","XL","L","LX","LXX","LXX","XC"},
         {"","C","CC","CCC","CD","D","DC","DCC","DCCC","CM"},
         {"","M","MM","MMM","Mv","v","vM","vMM","vMMM","Mx"}};
   private static Scanner scan;
 
   public static void main(String[] args) {
      System.out.println(INSTRUCCIONES);
      scan = new Scanner(System.in);
      String numero = scan.nextLine();
      NumerosRomanos.convertir(numero);
   }
 
   private static void convertir(String numero) {
      try{ //intenta convertir arabigo a romano
         NumerosRomanos.obtenerNotDesarrollada(Integer.valueOf(numero));
         System.out.println(NumerosRomanos.obtenerRomano());
      }catch (NumberFormatException e){
         try{ //intenta convertir romano a arabigo
            System.out.println(NumerosRomanos.obtenerArabigo(numero.trim()));
         }
         catch(Exception e1){
            System.out.println(ERROR);
         }
      }
      catch(Exception e){
         System.out.println(ERROR);
      }
 
   }
 
   public static void obtenerNotDesarrollada(int numero) {
      millares = (int)numero / 1000;
      centenas = (int)numero % 1000 / 100;
      decenas = (int)numero % 1000 % 100 / 10;
      unidades = (int)numero % 1000 % 100 % 10;
   }
 
   public static String obtenerRomano(){
      return romanos[3][millares]+""+
            romanos[2][centenas]+""+
            romanos[1][decenas]+""+
            romanos[0][unidades]+"";
   }
 
   private static String obtenerArabigo(String numero) {
      int size = numero.length();
      String arabigo = "";
      for (int i = 3; i>-1; i--){
         for(int j = size; j>-1; j--){
            int valor = -1;
            valor = escanear(numero.substring(0,j),i);
            if (valor > -1){
               arabigo = arabigo + valor;
               numero = numero.substring(j,size);
               size = numero.length();
               break;
            }
         }
      }
      return arabigo;
   }
 
   private static int escanear(String cadena, int orden) {
      for (int j = 9; j>-1; j-- ){
         if(romanos[orden][j].equals(cadena)){
            return j;
         }
      }
      return -1;
   }
 
}



Comentarios sobre la versión: Versión 1.0 (0)


No hay comentarios
 

Comentar la versión: Versión 1.0

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad

http://lwp-l.com/s4003