En programación informática , recortar ( trim ) o quitar ( strip ) es una manipulación de cadenas en la que se eliminan los espacios iniciales y finales de una cadena .
Por ejemplo, la cadena (encerrada entre apóstrofos)
'Esto es una prueba'
se cambiaría, después del recorte, a
'esto es una prueba'
Las variantes más populares de la función trim eliminan únicamente el principio o el final de la cadena. Normalmente se denominan ltrim y rtrim respectivamente, o en el caso de Python: lstrip y rstrip . C# utiliza TrimStart y TrimEnd , y Common Lisp string-left-trim y string-right-trim . Pascal y Java no tienen estas variantes integradas, aunque Object Pascal (Delphi) tiene las funciones TrimLeft y TrimRight . [1]
Muchas funciones de recorte tienen un parámetro opcional para especificar una lista de caracteres a recortar, en lugar de los caracteres de espacio en blanco predeterminados. Por ejemplo, PHP y Python permiten este parámetro opcional, mientras que Pascal y Java no. Con string-trim
la función de Common Lisp, el parámetro (llamado character-bag ) es obligatorio. La biblioteca Boost de C++ define caracteres de espacio según la configuración regional , además de ofrecer variantes con un parámetro de predicado (un functor ) para seleccionar qué caracteres se recortan.
Una variante poco común de trim devuelve un resultado especial si no quedan caracteres después de la operación de recorte. Por ejemplo, StringUtils de Apache Jakarta tiene una función llamada que devuelve una cadena vacía en lugar de una cadena vacía.stripToNull
null
La normalización de espacios es una manipulación de cadenas relacionada en la que, además de eliminar los espacios en blanco circundantes, cualquier secuencia de caracteres de espacio en blanco dentro de la cadena se reemplaza por un solo espacio. La normalización de espacios se realiza mediante la función nombrada Trim()
en aplicaciones de hojas de cálculo (incluidas Excel , Calc , Gnumeric y Google Docs ) y mediante la normalize-space()
función en XSLT y XPath .
Si bien la mayoría de los algoritmos devuelven una cadena nueva (recortada), algunos modifican la cadena original en el lugar . En particular, la biblioteca Boost permite que se devuelva tanto el recorte en el lugar como una copia recortada.
Los caracteres que se consideran espacios en blanco varían entre los lenguajes de programación y las implementaciones. Por ejemplo, C tradicionalmente solo cuenta los espacios, tabulaciones, saltos de línea y caracteres de retorno de carro, mientras que los lenguajes que admiten Unicode suelen incluir todos los caracteres de espacio Unicode. Algunas implementaciones también incluyen códigos de control ASCII (caracteres no imprimibles) junto con caracteres de espacio en blanco.
El método de recorte de Java considera los espacios ASCII y los códigos de control como espacios en blanco, a diferencia del isWhitespace()
método Java, [2] que reconoce todos los caracteres de espacio Unicode.
La función Trim de Delphi considera que los caracteres U+0000 (NULL) a U+0020 (SPACE) son espacios en blanco.
El bloque Unicode Patrones Braille contiene U+2800 ⠀ PATRÓN BRAILLE EN BLANCO , un patrón Braille sin puntos en relieve. El estándar Unicode establece explícitamente que no actúa como espacio.
El espacio sin separación U+00A0 NO-BREAK SPACE ( , ) también se puede tratar como espacio sin separación para fines de recorte.