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
endBu, 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: iBir 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, cBu yöntemler; metni analiz etmeniz, belirli karakterleri saymanız veya dizeleri karakter karakter dönüştürmeniz gerektiğinde faydalıdır.
Görev
KolayBir 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: 5Eğer girdi Ruby ise, çıktı şu şekilde olmalıdır:
Position 0: R
Position 1: u
Position 2: b
Position 3: y
Total characters: 4Eğer girdi code ise, çıktı şu şekilde olmalıdır:
Position 0: c
Position 1: o
Position 2: d
Position 3: e
Total characters: 4Eğer girdi A ise, çıktı şu şekilde olmalıdır:
Position 0: A
Total characters: 1Kopya 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
endHem 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}"
endBir dizeyi bir karakter dizisine dönüştürmek için chars yöntemini kullanın:
letters = "abc".chars
puts letters # Çıktı: a, b, cKendin 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: XBu 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
4Operatörler Bölüm 2
Mantıksal Operatörler Bölüm 1Mantıksal Operatörler Bölüm 2Özet - Basit MantıkMantıksal Operatörler Bölüm 3Mantıksal Operatörler Bölüm 47Hesap Paylaşımı Hesaplayıcısı
Hoş Geldiniz MesajıKullanıcı Girdisi Alma13İleri Seviye Diziler
Aralıklar ile Dizi Dilimlemeİndeksler ile Dizi DilimlemeDizi OperatörleriInclude? Metodu2Değişkenler ve Veri Tipleri
Sayılar ve DeğişkenlerString Veri TipiBoolean Veri TipiSymbol Veri TipiVeri Tiplerini Kontrol Etmeİsimlendirme KurallarıÖzet - Değişken Oluşturma8Döngüler
Aralıklar ile For DöngüsüWhile DöngüsüBreakNextÖzet - FaktöriyelTimes DöngüsüUntil Döngüsüİç İçe DöngülerÖzet - Dinamik Girdi3Operatörler Bölüm 1
Aritmetik OperatörlerModulo OperatörüAritmetik KısayollarÖzet - Basit MatematikKarşılaştırma Operatörleri6Temel IO
puts ile Çıktı Almaprint ve p ile Çıktı AlmaDeğişkenlerle Çıktı Almagets ile Girdi AlmaChomp MetoduTip DönüşümüÖzet - Yaş HesaplayıcıÖzet - Doğru mu Yanlış mı9Metotlar
Metot TanımlamaMetot ParametreleriDönüş DeğerleriÖzet - Sigma MetoduÖzet - Doğrulama MetoduVarsayılan Parametre Değerleri12Koleksiyonlar Üzerinde Yineleme
Each Yineleyicisiİndeks ile EachStringler Üzerinde YinelemeMap ve Collect