Servicio IniSplitString

INTRODUCCIÓN

Este servicio permite dividir un string de entrada en partes de longitudes variables según los
valores definidos en el parámetro Largos, y opcionalmente asegura que los cortes se realicen
respetando palabras completas si se indica.

INFORMACIÓN GENERAL

Nombre del servicio: IniSplitString

Clase: IniSplitStringBean

JNDI: nodum/servicios/genericos/ini/IniSplitString

Tipo: Inicialización

Módulo: General

Repetitivo: No

PARÁMETROS DE ENTRADA

Parámetro Literal Obligatorio Modificable Notas
1 String String de entrada Texto que se desea
dividir.
2 Largos

Largos a subdividir el string

 

Valores separados por ;
indicando el largo de
cada parte.
3 Considera
palabras
completas (S,N)
Considera
palabras
completas (S,N)
Si se indica S, se evita
cortar palabras por la
mitad.

FORMATO DE SALIDA

Object[][] Una fila con N columnas, donde cada columna contiene un fragmento.

 

LÓGICA DEL SERVICIO 

1. Preprocesamiento del texto: 

  • Se eliminan comillas simples iniciales y finales. 

2. Lectura de largos: 

  • El parámetro Largos se separa por ; determinando cuántos caracteres deberá tener cada fragmento. 

  3. Corte del string: 

  •   Para cada valor en Largos:   

  •   Si el texto restante tiene menos caracteres que el largo actual, se toma todo el resto. 

  • Si BloquePalabra = S, se busca el espacio anterior más cercano para evitar cortar palabras. 

  • Si no se encuentra un espacio válido, o BloquePalabra = N, se corta exactamente en el largo especificado. 

  • El segmento se guarda en el arreglo de salida. 

4. Salida: 

  • El resultado es un array unidimensional donde cada posición contiene una parte del texto original.  

  • Se retorna como una fila con varias columnas (una por receptor). 

CONSIDERACIONES TÉCNICAS 

  

  • Si se ingresan largos no numéricos, se lanza una excepción con mensaje indicando el índice incorrecto. 

  • Si el texto se termina antes de completar todos los largos, se deja de procesar. 

  • Es útil para dividir descripciones largas en campos de texto limitados por cantidad de caracteres. 

  

EJEMPLO 

  

String: 'Hola esto es una prueba para dividir'. 

Largos: '5;10;15'. 

  

(El texto será dividido en fragmentos de máximo 5, 10 y 15 caracteres, en ese orden) 

BloquePalabra: 'S'. 

  

(Se indica que debe cortar respetando palabras completas, no partir palabras a la mitad) 

Fragmento 1: Máximo 5 caracteres 

  • Texto restante: "Hola esto es una prueba para dividir' 

  • Se busca el espacio posterior al carácter en índice 5-> está en posición 9 

  • Luego se retrocede al último espacio antes de eso > está en índice 4 

  • Se corta en índice 4 + 1->"Hola" 

  • Texto restante: 'esto es una prueba para dividir' 

  

Fragmento 2: Máximo 10 caracteres 

  • Texto restante: 'esto es una prueba para dividir' 

  • Se busca espacio posterior a índice 10> está en índice 14 

  • Se retrocede al último espacio antes de eso> índice 12 

  • Se corta en índice 12 + 1->'esto es una" 

  • Texto restante: 'prueba para dividir" 

Fragmento 3: Máximo 15 caracteres 

  

  • Texto restante: 'prueba para dividir" (tiene menos de 15 caracteres, no necesita cortar) 

  • Se toma el resto completo. 

 

Receptor[0][0] "Hola "
Receptor[0][0] "esto es una "
Receptor[0][0] "prueba para dividir"

 


Descargar o Imprimir


¿TE SIRVIÓ ESTE ARTÍCULO?