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

  • alex maybury

    alex maybury

    20 Aralık 2007
  • Joshua Bane

    Joshua Bane

    24 Temmuz 2007
  • SellerDp

    SellerDp

    27 EKİM 2009