Problema con substring

Hola buenas, tengo un problemilla y a ver si tu me das echado un cable, veras.. Tengo 5 campos en una tabla de una BD cada campo tiene 250 caracteres el tema es que tengo que ir sacando tramas de 25 caracteres, yo de momento lo fui realizando con substring etc.. Y bien el problema me salta cuando intento sacar una trama de 25 en el campo 5 que muchas veces no tiene los 250 caracteres (tiene unas veces 30, 60, 90..) introducidos, por tanto me casca evidentemente, y la verdad es que no se muy bien como solucionarlo, ¿si se te ocurre algún método más practico coméntamelo ok? Bueno muchas gracias y a ver si sale bien esto un saludo

1 respuesta

Respuesta
1
Imagina que tienes en la variable "texto" el contenido de tu campo:
int len_trama = 25;
int len = texto.length();
int numTramas;
String trama;
if (len==0){
   numTramas = 0;
}
else{
   numTramas = (len/len_trama) + 1;
}
String[] tramas = new String[numTramas];
for (int k=0; k<numTramas; k++){
    if (k+1<numTramas){
       trama = texto.substring( (k*len_trama), (k+1)len_trama);
    }
    else{
       trama = texto.substring( (k*len_trama) );
    }
    numTramas[k] = trama;
}
Cuidado que no lo he probado! Puede que tengas que sumar o restar uno en algún caso al hacer el substring. Ve trazando las tramas que te van saliendo para comprobar que el código está bien.
hola, pues si ha funcionado, pero tengo una pequeña duda respecto a esta linea
else{
trama = texto.substring( (k*len_trama) );
si por ejemplo tengo numTramas=2 salta a esta linea, y por lo que yo entiendo solo cogeria el caracter 25 del string?¿? no tendria que coger la siguiente trama?¿?muchas gracias por la ayuda prestada ¡¡
Cuando se invoca a la función substring con solo un parámetro, le estás indicando el punto de inicio, lo cual significa que coge desde ese punto hasta el final del String. De ahí que haga esto para la última trama.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas