Hola!
Nos pidieron en la escuela un programa que pasa un numero que uno le ingrese por el teclado al programa y lo pase a numero romano menor que 3999 pero con arreglos y con to.charArray y partir de ellos para pasarlos de unidades, decenas, centenas y milesimas dependiendo su pocision el codigo en si lo tengo compilado en eclipse y no me marca errores pero al ejecutarlo me muestra la exception
345<---- este le ingrese
java.lang.ArrayIndexOutOfBoundsException: 3
at Romano.main(Romano.java:198)
Exception in thread "main"
Segun se la exception ArrayIndexOutOfBoundsException aparece cuando los subindices del arreglo estan fuera de los limites establecidos por la matriz pero segun yo lo ando pasando el String a mi arreglo romano de char y partiendolo en pocision a int sin embargo me genera esa exception
Espero me puedan ayudar
Aqui esta el codigo:
Esta algo larguito
import java.io.DataInputStream;
import java.io.IOException;
public class Romano {
public static void main(String[] args) {
// TODO Auto-generated method stub
String romanos=leeDato();
char[] romano=romanos.toCharArray();
if(romano.length==4){
int r=romano[0];
switch(r){
case 1:
System.out.print("M");
break;
case 2:
System.out.print("MM");
break;
case 3:
System.out.print("MMM");
break;
}
int e=romano[1];
switch(e){
case 1:
System.out.print("C");
break;
case 2:
System.out.print("CC");
break;
case 3:
System.out.print("CCC");
break;
case 4:
System.out.print("CD");
break;
case 5:
System.out.print("D");
break;
case 6:
System.out.print("DC");
break;
case 7:
System.out.print("DCC" );
break;
case 8:
System.out.print("DCCC");
break;
case 9:
System.out.print("DM");
break;
}
int w=romano[2];
switch(w){
case 1:
System.out.print("X");
break;
case 2:
System.out.print("XX");
break;
case 3:
System.out.print("XXX");
break;
case 4:
System.out.print("XL");
break;
case 5:
System.out.print("L");
break;
case 6:
System.out.print("LX");
break;
case 7:
System.out.print("LXX" );
break;
case 8:
System.out.print("LXXX");
break;
case 9:
System.out.print("XC");
break;
}
int q=romano[3];
switch(q){
case 1:
System.out.print("I");
break;
case 2:
System.out.print("II");
break;
case 3:
System.out.print("III");
break;
case 4:
System.out.print("IV");
break;
case 5:
System.out.print("V");
break;
case 6:
System.out.print("VI");
break;
case 7:
System.out.print("VII" );
break;
case 8:
System.out.print("VIII");
break;
case 9:
System.out.print("IX");
break;
}
}
if(romano.length==3){
int e=romano[1];
switch(e){
case 1:
System.out.print("C");
break;
case 2:
System.out.print("CC");
break;
case 3:
System.out.print("CCC");
break;
case 4:
System.out.print("CD");
break;
case 5:
System.out.print("D");
break;
case 6:
System.out.print("DC");
break;
case 7:
System.out.print("DCC" );
break;
case 8:
System.out.print("DCCC");
break;
case 9:
System.out.print("DM");
break;
}
int w=romano[2];
switch(w){
case 1:
System.out.print("X");
break;
case 2:
System.out.print("XX");
break;
case 3:
System.out.print("XXX");
break;
case 4:
System.out.print("XL");
break;
case 5:
System.out.print("L");
break;
case 6:
System.out.print("LX");
break;
case 7:
System.out.print("LXX" );
break;
case 8:
System.out.print("LXXX");
break;
case 9:
System.out.print("XC");
break;
}
int q=romano[3];
switch(q){
case 1:
System.out.print("I");
break;
case 2:
System.out.print("II");
break;
case 3:
System.out.print("III");
break;
case 4:
System.out.print("IV");
break;
case 5:
System.out.print("V");
break;
case 6:
System.out.print("VI");
break;
case 7:
System.out.print("VII" );
break;
case 8:
System.out.print("VIII");
break;
case 9:
System.out.print("IX");
break;
}
}
if(romano.length==2){
int w=romano[2];
switch(w){
case 1:
System.out.print("X");
break;
case 2:
System.out.print("XX");
break;
case 3:
System.out.print("XXX");
break;
case 4:
System.out.print("XL");
break;
case 5:
System.out.print("L");
break;
case 6:
System.out.print("LX");
break;
case 7:
System.out.print("LXX" );
break;
case 8:
System.out.print("LXXX");
break;
case 9:
System.out.print("XC");
break;
}
int q=romano[3];
switch(q){
case 1:
System.out.print("I");
break;
case 2:
System.out.print("II");
break;
case 3:
System.out.print("III");
break;
case 4:
System.out.print("IV");
break;
case 5:
System.out.print("V");
break;
case 6:
System.out.print("VI");
break;
case 7:
System.out.print("VII" );
break;
case 8:
System.out.print("VIII");
break;
case 9:
System.out.print("IX");
break;
}
}
if(romano.length==1){
int q=romano[3];
switch(q){
case 1:
System.out.print("I");
break;
case 2:
System.out.print("II");
break;
case 3:
System.out.print("III");
break;
case 4:
System.out.print("IV");
break;
case 5:
System.out.print("V");
break;
case 6:
System.out.print("VI");
break;
case 7:
System.out.print("VII" );
break;
case 8:
System.out.print("VIII");
break;
case 9:
System.out.print("IX");
break;
}
}
}
public static String leeDato() {
String dato = "";
try {
DataInputStream intro = new DataInputStream(System.in);
dato = intro.readLine();
} catch (IOException e) {
System.out.println("leeDato-- Error de Entrada/Salida : " + e);
}
return dato;
}
}