2012-05-02 15 views
5

Bir dizi devlet kısaltmaları listesi oluşturmak istiyorum ve uzun olduğu için birkaç satıra bölmek istiyorum. Bununla birlikte,% w veya% W'yi kullanarak, \ n satırların nerede kırılacağını içerir. irade bu sorunu çözmek nasıl "SD\n"Ruby'de% w [text] satırına eklenmeden n satır satır

olmak "SD" olarak

STATES = %w(AL AK AZ AR CA CO CT DE FL GA HI ID IL IN IA KS KY LA ME\ 
    MD MA MI MN MS MO MT NE NV NH NJ NM NY NC ND OH OK OR PA RI SC SD\ 
    TN TX UT VT VA WA WV WI WY) 

Yani "ME", "ME\n" olacak?

cevap

15

Sadece eğik çizgi bırakın ve yeni satır karakterleri olmayacak veya

+0

Doh kesiyor! Bu yüzden satır devam karakterleri gerektirmez (olduğu durumlarda hariç). Çizgi devam karakterleri gerektiren kural nedir? Ve çizgi devam karakterini yeni bir çizgi karakterine çevirme davranışı için rasyonel nedir? –

+1

http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/9976 – mikeycgto

+0

Teşekkürler, bu yararlı ama maalesef tamamlanmadı. Yazı, hattın sonu bir operatör ya da virgül ise, hattın bir satır devam karakteri olmadan bir sonraki satırda devam edebileceğini söylemektedir. Bu kuralla, örneğimin, göstermediğini gösterdiğiniz bir çizgi devamı karakterine ihtiyacı olacaktır. –

1
irb(main):003:0* STATES = %w(AL AK AZ AR CA CO CT DE FL GA HI ID IL IN IA KS KY LA ME\ 
irb(main):004:0] MD MA MI MN MS MO MT NE NV NH NJ NM NY NC ND OH OK OR PA RI SC SD\ 
irb(main):005:0] TN TX UT VT VA WA WV WI WY).collect(&:chomp) 
=> ["AL", "AK", "AZ", "AR", "CA", "CO", "CT", "DE", "FL", "GA", "HI", "ID", "IL", "IN", "IA", "KS", "KY", "LA", "ME", "MD", "MA", "MI", "MN", "MS", "MO", "MT", "NE", "NV", "NH", "NJ", "NM", "NY", "NC", "ND", "OH", "OK", "OR", "PA", "RI", "SC", "SD", "TN", "TX", "UT", "VT", "VA", "WA", "WV", "WI", "WY"] 
İlgili konular