Menu
Coddy logo textTech

Stringler Üzerinde Yineleme

Coddy'nin Ruby Journey'sinin Temeller bölümünün bir parçası — ders 67 / 88.

Tıpkı diziler gibi, Ruby'deki dizeler de karakter karakter yinelenebilir. each_char metodu, bir dizedeki her karakteri tek tek işlemenize olanak tanır.

İşte şu şekilde çalışır:

word = "Ruby"

word.each_char do |char|
  puts char
end

Bu, her karakteri ayrı bir satıra yazdırır: R, u, b, y. Yineleyici dize boyunca ilerlerken, char blok değişkeni her seferinde bir karakter tutar.

Hem karaktere hem de konumuna ihtiyacınız varsa, each_char.with_index kullanın:

word = "Hi"

word.each_char.with_index do |char, index|
  puts "#{index}: #{char}"
end

Şu çıktıyı verir:

0: H
1: i

Bir diğer kullanışlı metot, bir dizeyi karakterlerinden oluşan bir diziye dönüştüren chars metodudur. Bu, daha önce öğrendiğiniz tüm dizi metotlarını kullanmanıza olanak tanır:

letters = "abc".chars
puts letters  # Çıktı: a, b, c

Bu yöntemler; metni analiz etmeniz, belirli karakterleri saymanız veya dizeleri karakter karakter dönüştürmeniz gerektiğinde faydalıdır.

challenge icon

Görev

Kolay

Bir dize içeren tek bir girdi satırı okuyun (örneğin, hello).

Dize üzerinde gezinmek ve her karakteri konumuyla birlikte yazdırmak için each_char.with_index kullanın. Her satır şu formatı izlemelidir: Position 0: h

Tüm karakterleri konumlarıyla birlikte yazdırdıktan sonra, dizedeki toplam karakter sayısını yeni bir satırda şu formatta yazdırın: Total characters: 5

Örneğin, girdi hello ise, çıktı şu şekilde olmalıdır:

Position 0: h
Position 1: e
Position 2: l
Position 3: l
Position 4: o
Total characters: 5

Eğer girdi Ruby ise, çıktı şu şekilde olmalıdır:

Position 0: R
Position 1: u
Position 2: b
Position 3: y
Total characters: 4

Eğer girdi code ise, çıktı şu şekilde olmalıdır:

Position 0: c
Position 1: o
Position 2: d
Position 3: e
Total characters: 4

Eğer girdi A ise, çıktı şu şekilde olmalıdır:

Position 0: A
Total characters: 1

Kopya kağıdı

Bir dizedeki her karakter üzerinde yineleme yapmak için each_char yöntemini kullanın:

word = "Ruby"

word.each_char do |char|
  puts char
end

Hem karaktere hem de konumuna erişmek için each_char.with_index yöntemini kullanın:

word = "Hi"

word.each_char.with_index do |char, index|
  puts "#{index}: #{char}"
end

Bir dizeyi bir karakter dizisine dönüştürmek için chars yöntemini kullanın:

letters = "abc".chars
puts letters  # Çıktı: a, b, c

Kendin dene

# Girdiyi oku
str = gets.chomp

# YAPILACAK: Kodunuzu aşağıya yazın
# Dize üzerinde gezinmek için each_char.with_index kullanın
# Her karakteri şu formatta konumuyla birlikte yazdırın: Position X: char


# Toplam karakter sayısını şu formatta yazdırın: Total characters: X
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Temeller bölümündeki tüm dersler