Pourquoi cette chaîne ne se sépare-t-elle pas sur chaque "\ n"? (Rubis)
"ADVERTISING [7310]\n\t\tIRS NUMBER:\t\t\t\t061340408\n\t\tSTATE OF INCORPORATION:\t\t\tDE\n\t\tFISCAL YEAR END:\t\t\t0331\n\n\tFILING VALUES:\n\t\tFORM TYPE:\t\t10-Q\n\t\tSEC ACT:\t\t1934 Act\n\t".split('\n')
>> ["ADVERTISING [7310]\n\t\tIRS NUMBER:\t\t\t\t061340408\n\t\tSTATE OF INCORPORATION:\t\t\tDE\n\t\tFISCAL YEAR END:\t\t\t0331\n\n\tFILING VALUES:\n\t\tFORM TYPE:\t\t10-Q\n\t\tSEC ACT:\t\t1934 Act\n\t"]
Vous avez besoin de .split("\n")
. Une interpolation de chaîne est nécessaire pour interpréter correctement la nouvelle ligne, et les guillemets doubles sont un moyen de le faire.
Dans Ruby guillemets simples autour d'une chaîne signifie que les caractères d'échappement ne sont pas interprétés. Contrairement à C, les guillemets simples désignent un seul caractère. Dans ce cas, '\n'
Est en réalité équivalent à "\\n"
.
Donc, si vous voulez diviser sur \n
, Vous devez changer votre code pour utiliser des guillemets doubles.
.split("\n")
Ruby a les méthodes String#each_line
et String#lines
retourne un enum: http://www.Ruby-doc.org/core-1.9.3/String.html#method-i-each_line
retourne un tableau: http://www.Ruby-doc.org/core-2.1.2/String.html#method-i-lines
Je ne l'ai pas testé contre votre scénario, mais je parie que cela fonctionnera mieux que de choisir manuellement les caractères de nouvelle ligne.
Ou une expression régulière
.split(/\n/)
Vous ne pouvez pas utiliser de guillemets simples pour cela:
"ADVERTISING [7310]\n\t\tIRS NUMBER:\t\t\t\t061340408\n\t\tSTATE OF INCORPORATION:\t\t\tDE\n\t\tFISCAL YEAR END:\t\t\t0331\n\n\tFILING VALUES:\n\t\tFORM TYPE:\t\t10-Q\n\t\tSEC ACT:\t\t1934 Act\n\t".split("\n")