Tema: excepciones
Ver Mensaje Individual
  #1 (permalink)  
Antiguo 25/01/2012, 05:40
Avatar de godisa
godisa
 
Fecha de Ingreso: noviembre-2011
Mensajes: 46
Antigüedad: 12 años, 5 meses
Puntos: 1
excepciones

Hola,
alguien podria decirme que significa esta excepcion: java.lang.StringIndexOutOfBoundsException: String index out of range: -11

El caso es que hay veces que el codigo me lo ejecuta bien y otras mal. Cuando me lo ejecuta mal siempre se queda parado en el mismo punto
os pongo la funcion donde se queda parado:
Código PHP:
 private static void transformar_datos(String str) {
       
int i=0,j=0,p=0;//contadores
       
String str2,str3,str4,str21,str31,str41,cadenaAencontrar,cadenaAreemplazar,cadenaAencontrar2;
 
       
       
//OBTENGO LA FECHA DE REINICIO DEL SISTEMA
           
        
str21 = new String();
        
//cadena que vamos a buscar
       
cadenaAencontrar = new String();
        
cadenaAencontrar"System Up Time:";
        
//i es el indice de la cadena encontrada,nos da la primera ocurrencia de la cadena a encontrar
        
i=str.indexOf(cadenaAencontrar,0);
      
        
//Extraemos la cadena que va desde el indice de la cadena a econtrar al final
        
str21=str.substring(i-1);
       
        
        
cadenaAencontrar2 = new String();
        
cadenaAencontrar2"System Date and Time (local time zone)";
       
        
j=str.indexOf(cadenaAencontrar2,0);
        
        
str31 = new String();
        
str31=str.substring(j);
        
        
str41= new String();
        
str41=str.substring(ij);  
        
str41.trim();
       
        
         
Vector w1 =new Vector();//en este vector introduzco la linea que he buscado pero sin los espacion en blanco
         
int h=0;
         
         
StringTokenizer tokens3=new StringTokenizer(str41" ");
                
         while(
tokens3.hasMoreTokens()){//mientras haya espacios en blanco
             
String datotokens3.nextToken();
             try{
                 
w1.insertElementAt(dato,h); //insertamos el dato en el vector en la posicion h
                 
h++;
             }catch (
Exception e){} 
         }
         
String fechaReinicio= (String) w1.elementAt(3);
         
fechaActualReinicio =Integer.parseInt(fechaReinicio);//guardamos la Fecha de reinicio del switch
         
System.out.println(" fecha de reinicio "+fechaActualReinicio );
         
         
         
        
         
//OBTENGO LOS DATOS
        // str=str.replaceAll("\n", "-");//quito todos los retornos de carro de la cadena
         
str2 = new String();
       
         
//cadena que vamos a buscar
      
cadenaAencontrar = new String();

         
cadenaAencontrar"Late Coll.</th>";
         
//i es el indice de la cadena encontrada,nos da la primera ocurrencia de la cadena a encontrar
         
i=str.indexOf(cadenaAencontrar,0);
         
//Extraemos la cadena que va desde la cadena a econtrar al final
         //en str2 tenemos la cadena desde donde quiero que empiecen los datos hasta el final
         
str2=str.substring(i+15);
               
//System.out.println(" lo que hay en str2\n "+str2);
         //str3 me sirve para saber cual es la posicion final de lo que quiero copiar
         //en str3 tengo desde la ultima posicion de lo que quiero copiar hasta el final del documento
        
         
cadenaAencontrar = new String();    
         
cadenaAencontrar"<br><H4>Memory Ressources";
         
//j indice donde se encuentra el final de lo que quiero copiar
         
j=str.indexOf(cadenaAencontrar,0);
         
       
//str3 = new String();
         
str3=str.substring(j-10);
         
         
System.out.println(" lo que hay en str3\n "+i+"     "+j);
  
         
//en str4 tengo la cadena final con los datos que necesito
       
str4= new String();
         
str4=str.substring(i+15j-10);  
           
System.out.println(" lo que hay en str4 "+str4);
         
//reemplazo por espacios o guiones los simbolos correspondientes al lenguaje html
        
cadenaAreemplazar = new String();
         
cadenaAreemplazar="<tr><th>";
         
String str5str4.replace(cadenaAreemplazar,"");//inicio fila
        
         
cadenaAreemplazar="</th></tr>";
         
String str6str5.replace(cadenaAreemplazar,"-");//fin de fila
        
         
cadenaAreemplazar="</th><th>";
         
String str8str6.replace(cadenaAreemplazar,"-");//separacion entre los datos
         
         
cadenaAreemplazar ="/";
         
String str7str8.replace(cadenaAreemplazar,"-");//separacion entre los datos
          
         //este bucle es el encargado de ir dandonos los datos que nos interesan para meterlos
         //en una matriz de enteros
             
         
StringTokenizer tokens = new StringTokenizer(str7,"\n");
             
//System.out.println("cadena str7"+str7);
             
str7=str7.replaceAll("\n""-");
               
System.out.println("cadena str7"+str7);
         while(
tokens.hasMoreTokens()){
             
tokens.nextToken();//vamos al siguiente salto de linea
             
StringTokenizer tokens2=new StringTokenizer(str7"-");
                   
             while(
tokens2.hasMoreTokens()){//mientras haya guiones
                 
String w tokens2.nextToken(); //vamos al siguiente guion,en w guardo el dato
                 
try{
                     
Integer.parseInt(w);//convierto el dato a entero
                     
crear_matriz(p);
                 }catch (
Exception e){} 
             }
         }
         
mostrar_matriz(matriz);
         
System.out.println(" fin Procesar datos");
   } 

Lo ultimo que sale antes de la excepcin es esta linea: System.out.println(" fecha de reinicio "+fechaActualReinicio );

Gracias

Saludos