CADENAS CON COMILLAS DOBLES.
En las cadenas con comillas simples, todo se interpreta literal, sin embargo en las cadenas escritas con comillas dobles, se pueden escribir 'cosas' que se interpreten
BACKSLASH.
Si dentro de una cadena escrita con comillas dobles escribimos el caracter blackslash \
el caracter siguiente se puede interpretar de distintas maneras. Ejemplos:
'\n'
se interpreta como un salto de linea.'\t'
se interpreta como el caracter tab.'\xnn'
se interpreta como el caracter correspondiente al número hexadecimal nn.'\"'
se interpreta como comillas, pero NO TERMINA CADENA
caso que el caracter que siga al '\'
no sea interpretado, se ignorará el backslash.
puts 'en cadena simple pasa esto\n' puts "salto \nlinea siguiente" puts "Nombre:\tEduardo" puts "Dir.:\tCalle Palotes" puts "C.P.:\t80003" puts "0x61 es la letra :'\x61'" puts "Este es el caracter comillas:\"" print "salto de linea con print\n" puts "esto es otra linea"
| en cadena simple pasa esto\n salto linea siguiente Nombre: Eduardo Dir.: Calle Palotes C.P.: 80003 0x61 es la letra :'a' Este es el caracter comillas:" salto de linea con print esto es otra linea
|
OPERADOR EVALUACION
El operador evaluación tiene esta sintaxis #{sentencia}
Solamente puede estar dentro de una cadena con comillas dobles
Por sentencia
entenderemos una serie de operaciones cuyo resultado se 'añadirá' a la cadena en el sitio del operador evaluación la sentencia.
Dicho de otra forma : La cadena resultante es la que queda despues de 'evaluarse' la sentencia y añadirse a la cadena.
Ejemplo:
variable=1234 puts "la variable=#{variable}" variable=10 puts "variable*5=#{variable*5}" var1=10 var2=5 puts "var1*var2=#{var1*var2}"
| la variable=1234 variable*5=50 var1*var2=50
|
TROCEADO DE CADENAS
Las dos formas básicas de trocear las cadenas son las siguientes:
CADENA[DESDE..HASTA]
Con esta sintaxis : cadena[x..y]
nos estamos refiriendo al 'trozo' de cadena que comienza en la posicion x
y termina en la posición y
. Siempre entendiendo que la posición inicial es CERO.
Ejemplo
var="esto es una cadena" puts var[5..6] puts "\"#{var[5..6]}\"" puts "esto es una cadena"[5..6]
var1=var[0..3]+ " "+var[5..6]+" "+var[8..10]+" "+var[12,16] puts "reconstruida la cadena: " puts var1
var="esto es una cadena" rPalabra=0 iPalabra=0
while rPalabra<18 if var[rPalabra..rPalabra]==' ' if rPalabra!=iPalabra puts "palabra \""+ var[iPalabra..rPalabra-1]+"\"" end iPalabra=rPalabra+1 end rPalabra=rPalabra+1 end if rPalabra!=iPalabra puts "palabra \""+ var[iPalabra..rPalabra-1]+"\"" end
| es "es" es reconstruida la cadena: esto es una cadena palabra "esto" palabra "es" palabra "una" palabra "cadena"
|
CADENA[DESDE,CUANTO]
Con esta sintaxis : cadena[x,y]
nos estamos refiriendo al 'trozo' de cadena que comienza en la posicion x
tomando y
caracteres(posiciones). Siempre entendiendo que la posición inicial es CERO.
Ejemplo:
var="esto es una cadena" puts var[5,2] puts "\"#{var[5,2]}\"" puts "esto es una cadena"[5,2]
var1=var[0,4]+ " "+var[5,2]+" "+var[8,3]+" "+var[12,6] puts "reconstruida la cadena: " puts var1
var="esto es una cadena" rPalabra=0 iPalabra=0
while rPalabra<18 if var[rPalabra,1]==' ' if rPalabra!=iPalabra puts "palabra \""+ var[iPalabra,rPalabra-iPalabra]+"\"" end iPalabra=rPalabra+1 end rPalabra=rPalabra+1 end if rPalabra!=iPalabra puts "palabra \""+ var[iPalabra,rPalabra-iPalabra]+"\"" end
| es "es" es reconstruida la cadena: esto es una cadena palabra "esto" palabra "es" palabra "una" palabra "cadena"
|
MODIFICAR CADENAS.
La sintaxis cadena[x..y]
y cadena[x..y]
tambien sirve para modificar el contenido de las cadenas
Ejemplo:
var="soy un vurro" puts var puts "vamos a cambiar la 'v' por la 'b'" var[7..7]="b" puts var puts "------------------------" var="esto no esta bien" puts var puts "vamos a cambiar el 'no' por el 'si'" var[5..6]="si" puts var
puts "------------------------"
var="Esto es una mala prueba" puts "vamos a substituir mala por buena" var[12..15]="buena" puts var puts "Ole,lo ha hecho perfectamente."
| soy un vurro vamos a cambiar la 'v' por la 'b' soy un burro ------------------------ esto no esta bien vamos a cambiar el 'no' por el 'si' esto si esta bien ------------------------ vamos a substituir mala por buena Esto es una buena prueba Ole,lo ha hecho perfectamente.
|
ESTADOS DE LAS CADENAS
Una cadena puede estar en los siguientes estados:
con datos
: cuando tiene datosvacía
: cuando tiene la cadena vacíanula
: esta sin 'inicializar', no tiene nada cad==nil
Ejemplo:
cadena='Esto no es una cadena' cadena='' cadena=nil if cadena==nil puts "cadena nula" elsif cadena=='' puts "cadena vacía" else puts "cadena con datos "+"["+cadena+"]" end
| cadena nula
|
EL OBJETO STRING
En ruby todo son objetos, una caracteristica de los objetos, es que tienen métodos, es decir, funciones asociadas a ellos cuya sintaxis es objeto.metodo parametros
.
Las cadenas son objetos de la clase string
Vamos ahora a ver como ejemplo algún método de la clase string, para familiarizarnos con su uso
cadena.upcase
: nos devuelve la cadena en mayusculas.cadena.upcase!
: nos devuelve la cadena en mayusculas. Y además modifica la cadena originalcadena.empty?
: nos indica si la cadena está vacia (true/false).cadena.lenght
: nos devuelve la longitud de la cadena.
Como mejor lo veremos es con ejemplos
cadena='Esto es una cadena' puts "cadena en mayusculas:" puts cadena.upcase puts "cadena original:" puts cadena puts "otra vez en mayusculas:" puts cadena.upcase! puts "la original modificada:" puts cadena puts "longitud cadena=" puts cadena.length puts "nuestra cadena esta :" if cadena.empty? == false puts "con datos" end if cadena==nil puts "cadena nula" elsif cadena.empty? == true puts "cadena vacía" else puts "cadena con datos "+"["+cadena+"]" end
| cadena en mayusculas: ESTO ES UNA CADENA cadena original: Esto es una cadena otra vez en mayusculas: ESTO ES UNA CADENA la original modificada: ESTO ES UNA CADENA longitud cadena= 18 nuestra cadena esta : con datos cadena con datos [ESTO ES UNA CADENA]
|
.----oOO--OOo----.
No hay comentarios:
Publicar un comentario