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

  • Lamborghini

    Lamborghini

    13 Aralık 2005
  • metal571

    metal571

    30 Mayıs 2006
  • whatever

    whatever

    30 EYLÜL 2005