2.  Harfler (Strings) 
 	Sayılar hakkında bir şeyler öğrendik. Peki harfler , kelimeler ve metinler ? 
Program içinde harflerden oluşan gruplara ( kelime gibi )  strings diyoruz. Bunun kolay anlaşılması için aşağıdaki kodlarda STRING olan kısımlar kırmızı yazılmıştır. 
'Hello.'
'Ruby rocks.'
'5 is my favorite number... what is yours?'
'Snoopy says #%^?&*@! when he stubs his toe.'
'     '
''
Gördüğünüz gibi string ler içinde harflerin haricinde ; noktalama işaretleri , rakamlar , semboller ve boşluklar olabilir. Sonuncu string de hiçbir şey yok ( boşluk da yok  : çünkü programlamada hiç bir şey olmaması veya boşluk olması aynı şey değildir ) bunlara empty (boş) string diyoruz. 
Sayıları yazdırmak için puts komutunu kullanıyorduk. String ler için de puts komutunu deneyelim :
puts 'Hello, world!'
puts ''
puts 'Good-bye.'
Hello, world!
            (boş satır . neden?)
Good-bye.
Şimdi kendiniz birkaç deneme yapın. 
String İşlemleri 
Sayılarla yaptığımız işlemleri harfler ve stringlerle de yapabiliriz. 
puts 'I like' + 'apple pie.'

I likeapple pie.
Ama olmadı neden? Çünkü boşluk koymadan yazdık. Daha önce programlar için boşluğun önemli olmadığını söylemiştik ama boşluk stringler içinde ise ( çift veya tek tırnakların arasına yazılmışlarsa ) önemlidir. Tekrar deneyelim : 
puts 'I like ' + 'apple pie.'
puts 'I like' + ' apple pie.'

I like apple pie.
I like apple pie.
(gördüğünüz gibi boşluğun hangi string içinde olduğunun önemi yok.) 
Stringler birbiri ile toplanabiliyor , aynı zamanda bir sayı ile çarpılabilirde . Şuna bakın : 
puts 'blink ' * 4

batting her eyes
(sadece şaka ... sonuç aşağıda:)
blink blink blink blink 
Şöyle düşünün : 7*3 ne demektir ?  7+7+7, aynı şekilde 'moo'*3 demek  'moo'+'moo'+'moo' olur. 
12 ve '12' nin farkı
Daha ileri gitmeden sayı ve rakam arasındaki farkı iyi öğrenmemiz lazım. 12 bir sayı dır ama '12' iki adet rakam ı olan bir string dir. 
Bunları kodlarda biraz inceleyelim : 
puts  12  +  12
puts '12' + '12'
puts '12  +  12'

24
1212
12  +  12

puts  2  *  5
puts '2' *  5
puts '2  *  5'

10
22222
2  *  5
Çok kolay gibi görünebilir ama aradaki farklara dikkat etmemiz gerekiyor. 
Hatalar 
Aşağıdakileri deneyin ve çalışmadığını görün : 
puts '12' + 12
puts '2' * '5'

#
Buradaki sorun :  sayı ile string i toplayamazsınız ve iki string birbiri ile çarpılamaz . Aşağıdakiler de hatalı koddur : 
puts 'Betty' + 12
puts 'Fred' * 'John'
Bir konuda da dikkatli olmamız lazım : kodlamada şu şekilde yazabiliriz ve doğrudur : 'koyun'*5 , bu beş adet koyun yazan bir string kümesi oluşturur . Ama 5*'koyun' yazarsanız bu hataya sebep olur , çünkü koyun kadar 5 anlamsız bir önermedir. 
Sonuçta “ You’re swell ! “ yazdırmak için ne yapıyoruz : 
puts 'You're swell!'
İyi ama çalışmadı ! String yazarken kullandığımız tırnak işaretinin üç tane olması hataya sebep olur. Bunu önlemek için ortadaki tırnak işaretinin string içinde bir eleman olduğunu belirtmeliyiz. Bunun için “escape (atlama) karakteri “ (ters bölü : \ ) kullanırız. 
puts 'You\'re swell!'

You're swell!
Aşağıda birkaç örneği inceleyelim : 
puts 'You\'re swell!'
puts 'backslash at the end of a string:  \\'
puts 'up\\down'
puts 'up\down'

You're swell!
backslash at the end of a string:  \
up\down
up\down
Son iki kod farklı olduğu halde çıktıları aynı oldu. Çünkü  \ işareti ‘d’ harfini atlatamaz kendini atlatır . Çift \ \ ise bir \ atlatır diğeri kalır. \ işareti sadece noktalama işaretlerini ve kendini mi atlatıyor , harf olunca atlatmıyor mu , bunu kendimiz deneyelim. 
Sorularınız olabilir ama okumaya devam ;