aprendiendo ( Erlang ).

martes, 21 de febrero de 2012

Manejo de cadenas (String).

| 2 comentarios |

En este apartado vamos a ver el módulo String de Erlang. Ya hemos visto con anterioridad que las cadenas son en realidad una lista caracteres, y el módulo String quien tiene las funciones básicas para el manejo de cadenas de forma eficiente. Veamos pues, algunas de estas funciones:

  • centre(Cadena, Número, Carácter) -> Cadena: Centra una cadena.
1> string:centre("hola", 10, $ ).
"   hola   "

  • chars(Carácter, Número, Cola) -> Cadena: Retorna una cadena con n-veces el carácter concatenado con la Cola.
2> string:chars($h, 10, "ola" ). 
"hhhhhhhhhhola"

  • concat(Cadena1, Cadena2) -> Cadena3: Concatena dos cadenas.
3> string:concat("hola ", "mundo").
"hola mundo"

  • copies(Cadena, Número) -> Cadena: Copia una cadena un número de veces.
4> string:copies("hola ", 5).      
"hola hola hola hola hola "

  • equal(Cadena1, Cadena2) -> bool: Testea la igualdad de las dos cadenas.
5> string:equal("hola", "mundo").
false
6> string:equal("hola", "hola"). 
true

  • left(Cadena, Número, Carácter) -> Cadena: Ajusta la cadena a la izquierda.
7> string:left("hola", 10, $-). 
"hola------"

  • len(Cadena) -> Número: Retorna la longitud de la cadena.
8> string:len("hola").         
4

  • chr(Cadena, Carácter) -> Número y rchr(Cadena, Carácter)=: Retorna el índice de la primera y última ocurrencia, respectivamente, de un carácter .
9> string:rchr("hola mundo", $o).
10
10> string:chr("hola mundo", $o). 
2

  • right(Cadena, Número, Carácter) -> Cadena: Ajusta la cadena a la derecha.
11> string:right("hola", 10, $-). 
"------hola"

  • str(Cadena, SubCadena) -> Número y rstr(Cadena, SubCadena) -> Número: Busca el índice de comienzo de una subcadena empezando desde el comienzo de la cadena o desde el final respectivamente.
12> string:str("hola mundo hola mundo", "mundo").   
6
13> string:rstr("hola mundo hola mundo", "mundo").
17

  • strip(Cadena, [left | right | both], Carácter) -> Cadena: Quita el carácter de inicio o fin de la cadena.
14> string:strip(" hola ", left, $ ).
"hola "
15> string:strip(" hola ", right, $ ).
" hola"
16> string:strip(" hola ", both, $ ).     
"hola"

  • sub_string(Cadena, Indice_inicio, Indice_fin) -> Cadena: Extrae una subcadena.
17> string:sub_string("hola mundo", 1, 4).
"hola"

  • sub_word(Cadena, Número, Carácter) -> Word: Extrae una subpalabra. Extrae tokens en función del carácter .pasado
18> string:sub_word("hola mundo", 1, $ ).
"hola"
19> string:sub_word("hola mundo", 2, $ ).
"mundo"

  • substr(Cadena, Indice_inicio, Longitud) -> SubCadena: Retorna una subcadena
20> string:substr("hola mundo", 6, 5).   
"mundo"

  • to_float(Cadena) -> {Float,Rest} | {error,Motivo}: Convierte a float una cadena ASCII.
21> string:to_float("15.36").         
{15.36,[]}

  • to_integer(String) -> {ParteEntera,ParteDecimal} | {error,Motivo}: Convierte a un entero una cadena ASCII.
22> string:to_integer("15"). 
{15,[]}

  • to_lower(Carácter) -> Carácter y to_upper(Carácter) -> Carácter: Convierte a minúsculas y mayúsculas respectivamente.
23> string:to_lower($S).
115
24> string:to_upper($s).
83

  • to_lower(Cadena) -> Cadena y to_upper(Cadena) -> Cadena: Convierte a minúsculas y mayúsculas respectivamente.
25> string:to_lower("Hola Mundo").                  
"hola mundo"
26> string:to_upper("Hola Mundo").
"HOLA MUNDO"

  • tokens(Cadena, Lista_separadores) -> Lista: Divide una cadena en tokens.
27> string:tokens("En un lugar de la mancha", [$ ]).
["En","un","lugar","de","la","mancha"]

  • words(Cadena, Carácter) -> Número: Cuenta el número de palabras de la cadena, donde el carácter pasado es el separador de palabras.
28> string:words("En un lugar de la mancha", $ ).   
6

  • join(Lista_cadenas, Cadena_separador) -> Cadena: concatena todas las cadenas de la lista utilizando un separador entre ella. Vamos lo que viene siendo un Join de ayer, hoy y siempre.
29> string:join( ["hola", "mundo"], " ").
"hola mundo"

Ha sido divertido pero es que no hay más.

Publicar un comentario en la entrada

2 comentarios:

  1. Anónimo dijo...

    Muy bueno.
    Mes es de mucha utilidad.
    Sigue así

  2. Verdi dijo...

    De eso se trata de ayudar con lo que pueda.

    Gracias por el apoyo.

 
Licencia Creative Commons
Aprendiendo Erlang por Verdi se encuentra bajo una Licencia Creative Commons Atribución-NoComercial-CompartirIgual 3.0 Unported.