2012-05-02 4 views
5

Quiero construir una matriz de una lista de abreviaturas de estado, y dado que es larga, quiero dividirla en varias líneas. Sin embargo, el uso de% w o% W incluye \ n donde las líneas se rompen.Cómo% w [texto] en Ruby sin incluir n donde se ajusta la línea

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) 

Así "ME" habrá "ME\n", como voluntad "SD" ser "SD\n"

¿Cómo puedo solucionar este problema?

Respuesta

15

Coloque las barras y no habrá nuevos caracteres de línea o barras

+0

Doh! Por lo tanto, no requiere caracteres de continuación de línea (excepto en los casos en que sí lo haga). ¿Cuál es la regla para requerir caracteres de continuación de línea? ¿Y cuál es la racionalidad para el comportamiento de convertir el personaje de continuación de línea en un nuevo personaje de línea? –

+1

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

+0

Gracias, eso es útil, pero desafortunadamente no está completo. La publicación dice que si el final de la línea es un operador o una coma, la línea puede continuar en el siguiente sin un carácter de continuación de línea. Con esa regla, mi ejemplo necesitaría un personaje de continuación de línea en el que haya demostrado que no lo hace. –

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"] 
Cuestiones relacionadas