Recortar

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 .

Aplicación

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 , "" ); }

Notas

  1. Función de recorte de FreePascal Archivado el 15 de abril de 2009 en Wayback Machine  ( consultado  el 25 de noviembre de 2009)
  2. Función isWhitespace de Java Archivado el 27 de febrero de 2009 en Wayback Machine  ( consultado  el 25 de noviembre de 2009)
  3. Trim function en Pascal Archivado el 27 de febrero de 2009 en Wayback Machine  ( consultado  el 25 de noviembre de 2009)
  4. Alex Blewitt. ECMAScript 5  lanzado . InfoQ (9 de diciembre de 2009). Consultado el 10 de diciembre de 2009. Archivado desde el original el 28 de marzo de 2012.

Enlaces