Trim ( ing. trim - trim, trim; en algunos idiomas - strip ) - función de cadena que elimina los espacios iniciales y finales .
Por ejemplo, en Phyton :
'Esto es una prueba' . tira ()devuelve una cadena:
'Esto es una prueba'Las variantes más populares de la función trimeliminan espacios solo al principio y al final de las líneas. Suelen denominarse ltrimy rtrimrespectivamente, o en el caso del lenguaje Python , - lstripy rstrip. C# usa TrimStarty TrimEnd, mientras que Common Lisp string-left-trim usa y string-right-trim. No hay opciones integradas en Pascal y Java , aunque Delphi tiene TrimLefty TrimRight. [una]
Muchas funciones trimtienen un parámetro opcional para especificar una lista de caracteres para eliminar. Por ejemplo, PHP y Python permiten este parámetro opcional, mientras que Pascal y Java no. Una función string-trimde lenguaje Common Lisp requiere un parámetro (llamado character-bag ). En C++ , la biblioteca Boost define los caracteres de espacio en blanco de acuerdo con la configuración regional y también ofrece opciones para que un parámetro de predicado elija qué caracteres eliminar.
En algunos casos, trimdevuelve un determinado resultado si no quedan caracteres después de la operación de eliminación. Por ejemplo, StringUtils de Apache Jakarta Project tiene una función llamada stripToNull, que en su lugar devuelve nulluna cadena vacía.
Una alternativa a la eliminación de una cadena es la normalización de espacios en blanco, donde además de eliminar los caracteres de espacio en blanco al final de una cadena, cualquier secuencia de espacios en blanco dentro de una cadena también se reemplaza con un solo espacio. La normalización de espacios en blanco se realiza Trim()mediante aplicaciones de hojas de cálculo (incluidas Excel , Calc , Gnumeric y Google Docs ) y una función normalize-space()en XSLT y XPath .
Si bien la mayoría de los algoritmos devuelven una cadena nueva (truncada), algunos modifican la cadena original en el lugar mediante la transformación de la estructura de datos. En particular, la biblioteca Boost permite el truncamiento "en el lugar" o devolver una copia truncada de la cadena.
Los caracteres a los que se hace referencia como espacios varían entre los lenguajes de programación y sus implementaciones. Por ejemplo, en C, los caracteres de espacio, tabulación, avance de línea y retorno de carro se tratan tradicionalmente como tales, mientras que los idiomas compatibles con Unicode generalmente incluyen aquí todos los caracteres de espacio en blanco de Unicode. Algunas implementaciones también incluyen caracteres de control ASCII (caracteres no imprimibles) además de caracteres de espacio en blanco.
El método trimen Java cuenta los códigos de escape como espacios en blanco, mientras que el método isWhitespace()[2] reconoce los caracteres de espacio en blanco Unicode .
Implementación en algunos lenguajes de programación:
ejemplo de uso | Lenguaje de programación |
---|---|
Cadena .Trim([ caracteres ]) | C# , Visual Basic .NET , Windows PowerShell |
std.string.strip( cadena ) | D |
(string-trim '(#\Space #\Tab #\Newline) string ) | ceceo común |
(cadena de corte de cuerda ) | Esquema |
cadena.trim () | Java , JavaScript |
Recortar ( cadena ) | Pascual [3] |
cadena.tira () | Pitón |
tira ( cadena [, opción , carácter ]) | REXX |
cadena: tira ( cadena [, opción , carácter ]) | Erlang |
cadena .tira | rubí |
recortar ( $ cadena ) | PHP |
Recortar ( cadena ) | QBasic , Visual Basic , Delphi |
recorte de hilo $ hilo | tcl |
ALLTRIM( Cadena ) | FoxPro |
En lenguajes sin función incorporada trim(), para lograr una funcionalidad comparable, es común escribir funciones que realicen la misma tarea.
Por ejemplo, en awk puede usar expresiones regulares para esto :
ltrim(v) = gsub(/^[ \t\r]+/, "", v) rtrim(v) = gsub(/[ \t\r]+$/, "", v) recortar(v) = ltrim(v); rtrim(v)o:
función ltrim(s) { sub(/^[ \t\r]+/, "", s); devoluciones} función rtrim(s) { sub(/[ \t\r]+$/, "", s); devoluciones} función trim(s) { return rtrim(ltrim(s)); }JavaScript ha podido usar trim()[4] desde ECMAScript 5, antes de que los objetos String pudieran extenderse con un prototipo :
Cuerda . prototipo _ recortar = función () { devuelve esto . reemplazar ( /^\s+|\s+$/g , "" ); }