SORU
28 EYLÜL 2009, PAZARTESİ


yineleme ruby 1.8.6 bir Dize (each_char)her karakter üzerinde

Ruby için yeni ve şu anda ruby temel bir Dize ayrı ayrı her karakter üzerinde çalışmaya çalışıyorum. Ruby 1.8.6? " gibi bir şey yapmak istiyorum kullanıyorum:

"ABCDEFG".each_char do |i|
  puts i
end

Bu tanımsız bir yöntem `each_char' hata üretir.

Dikey bir çıkış beklediğim:

A
B
C
D
..etc

Sadece 1.9 each_char yöntem tanımlanmıştır. each düz yöntemini kullanarak denedim, ama bu engelleme sadece bir satır, tüm dize fllar. Oldukça rahatsız edici olan, bunu yapmak için nasıl düşündüm tek yolu baştan beri karakter dizisi oluşturmak için:

['A','B','C','D','...'].each do|i|
  puts i
end

Bu istenen sonuçları:

A
B
C
..etc

Belki de bir şekilde bu çıkışı ile başlamak için değiştirilmemiş bir dize kullanarak elde etmek için var mı?

Java eşdeğer olduğunu düşünüyorum

for (int i = 0; i < aString.length(); i  ){
  char currentChar = aString.charAt(i);
  System.out.println(currentChar);
}

CEVAP
28 EYLÜL 2009, PAZARTESİ


Aynı sorun bende de var. Ben genelde 15* *çare:

"ABCDEFG".split("").each do |i|
  puts i
end

Ayrıca kendini bu şekilde uygulamak olabilir sanırım

class String
  def each_char
    self.split("").each { |i| yield i }
  end
end

Düzenleme:henüz başka bir alternatif String#each_byte Ruby mevcuttur ASCII dizesi her char ASCII değerini döndürür 1.8.6,:

"ABCDEFG".each_byte do |i|
  puts i.chr # Fixnum#chr converts any number to the ASCII char it represents
end

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • ABC News (Australia)

    ABC News (Au

    9 HAZİRAN 2008
  • Michael Lummio

    Michael Lumm

    25 Mayıs 2007
  • the one am radio

    the one am r

    6 Mayıs 2006