Els strings es trobem entre dos cometes "
o '
d’aquesta manera: “Hola mundo” o ‘Hola mundo’.
Normalment voldrem tenir cadenes que incloguen un avariable o el resultat d’una operació això es pot fer a través de dos processos;
- Concatenació
- Interpolació
#01 Concatenació
irb(main):001:0> nombre = "Uriel"
=> "Uriel"
irb(main):002:0> "Hola " + nombre
=> "Hola Uriel"
irb(main):003:0> nombre = "Coco"
=> "Coco"
irb(main):004:0> "Hola " + nombre
=> "Hola Coco"
irb(main):005:0>
#02 Interpolació
La interpolació es distingueix perquè dins d’un string col·loquem una dada i després dues claus. El que es troba dins de les claus ja no compt com la cadena, sinó que s’avalua com a codi de Ruby.
irb(main):003:0> nombre = "Coco"
=> "Coco"
irb(main):005:0> "Hola #{ nombre }"
=> "Hola Coco"
irb(main):006:0> "Hola #{ 20 + 20 }"
=> "Hola 40"
irb(main):008:0> "Hola #{ nombre.upcase }"
=> "Hola COCO"
Les cadenes són objectes en Ruby, que són operacions o mètodes que es poden executar amb un string.
Per veure tots els Mètodes que es poden executar amb un string cal fer:
irb(main):009:0> "".methods
=> [:<=>, :==, :===, :eql?, :hash, :casecmp, :+, :*, :%, :[], :[]=, :insert, :length, :size, :bytesize, :empty?, :=~, :match, :succ, :succ!, :next, :next!, :upto, :index, :rindex, :replace, :clear, :chr, :getbyte, :setbyte, :byteslice, :to_i, :to_f, :to_s, :to_str, :inspect, :dump, :upcase, :downcase, :capitalize, :swapcase, :upcase!, :downcase!, :capitalize!, :swapcase!, :hex, :oct, :split, :lines, :bytes, :chars, :codepoints, :reverse, :reverse!, :concat, :<<, :prepend, :crypt, :intern, :to_sym, :ord, :include?, :start_with?, :end_with?, :scan, :ljust, :rjust, :center, :sub, :gsub, :chop, :chomp, :strip, :lstrip, :rstrip, :sub!, :gsub!, :chop!, :chomp!, :strip!, :lstrip!, :rstrip!, :tr, :tr_s, :delete, :squeeze, :count, :tr!, :tr_s!, :delete!, :squeeze!, :each_line, :each_byte, :each_char, :each_codepoint, :sum, :slice, :slice!, :partition, :rpartition, :encoding, :force_encoding, :b, :valid_encoding?, :ascii_only?, :unpack, :encode, :encode!, :to_r, :to_c, :>, :>=, :<, :<=, :between?, :nil?, :!~, :class, :singleton_class, :clone, :dup, :taint, :tainted?, :untaint, :untrust, :untrusted?, :trust, :freeze, :frozen?, :methods, :singleton_methods, :protected_methods, :private_methods, :public_methods, :instance_variables, :instance_variable_get, :instance_variable_set, :instance_variable_defined?, :remove_instance_variable, :instance_of?, :kind_of?, :is_a?, :tap, :send, :public_send, :respond_to?, :extend, :display, :method, :public_method, :define_singleton_method, :object_id, :to_enum, :enum_for, :equal?, :!, :!=, :instance_eval, :instance_exec, :__send__, :__id__]
Veiem els mètodes (operacions que es poden executar dins dels strings.
Alguns exemples interessants són:
1. Convertir minúscules a majúcules
irb(main):011:0> "uriel".upcase
=> "URIEL"
2. Convertir majúscula a minúscula
irb(main):012:0> "URIEL".downcase
=> "uriel"
3. Convertir sols el primer caracter no la primera lletra a majúscula i totes les demés a minúscula
irb(main):013:0> "URIEL".capitalize
=> "Uriel"
4. Amb caracters especials
Per fer-ho anem a crear un nou arxiu que tinga el mètode de codificació dels caracters utf-8
:
# encoding: utf-8
puts "León, corazón"
Quan executem
León, corazón
Amb caracters no imprimibles utilizem backflash
, que és aquest caracter \
:
\n
representa un salt de línia.\t
prepresenta un tabulador.- Si utilitzem dobles comilles aquests caracters es conserven però si utilitzem comilles simples aquest caracters es conserven, no s’interpreten, canvien al que signifiquen.
irb(main):001:0> "Hola Urial \n \n \n"
=> "Hola Urial \n \n \nº"
irb(main):002:0> puts "Hola Urial \n \n \n"
Hola Urial
=> nil
irb(main):003:0> puts "Hola Urial \n \n \n \t Hola"
Hola Urial
Hola
=> nil
Convertir cadenes a nombres i al contrari:
irb(main):004:0> "2".to_i
=> 2
irb(main):005:0> "2".to_f
=> 2.0
irb(main):006:0> "Hola".to_i
=> 0
irb(main):007:0> "Hola".to_f
=> 0.0