Array.join ( "\ n")은 개행 문자와 결합하는 방법이 아니십니까?
나는 배열이 ..
[1,2,3,4]
줄 바꿈으로 구분 된 모든 요소를 포함하는 문자열을 원합니다.
1
2
3
4
하지만 내가 시도 [1,2,3,4].join("\n")
하면
1\n2\n3\n4
분명한 답이있는 것 같은데 찾을 수가 없어요!
예,하지만 해당 문자열을 인쇄하면 줄 바꿈이 있습니다.
irb(main):001:0> a = (1..4).to_a
=> [1, 2, 3, 4]
irb(main):002:0> a.join("\n")
=> "1\n2\n3\n4"
irb(main):003:0> puts a.join("\n")
1
2
3
4
그래서 그것은 당신이 원하는 것을 달성하는 것처럼 보입니다 (?)
여기서 발생할 수있는 미묘한 오류는 큰 따옴표 대신 작은 따옴표를 사용하는 것입니다. 또한 개행 문자를 \ n으로 렌더링하는 효과가 있습니다. 그래서
puts a.join("\n") # correct
다음과 같지 않다
puts a.join('\n') # incorrect
이것이 왜 여기 에 해당되는지에 대한 훌륭한 글이 있습니다 .
ERB 템플릿 에서이 기능을 검색하는 사람이 있다면 다음을 시도하십시오.
(1..5).to_a.join("<br>").html_safe
이것을 또한 시도하십시오 :
puts (1..4).to_a * "\n"
컨텍스트에 따라 ajay가 말한 것처럼 html_safe를 사용하지 않을 수 있습니다. Html 안전은 보안 문제가 될 수 있습니다. 이것은 원래 입력이 실제로 html 안전한지 여부에 따라 다릅니다 . HTML safe는 사용자가 직접 입력 할 때 호출되지 않아야하며 일반적으로보기 전에 호출되어야합니다.
https://bibwild.wordpress.com/2013/12/19/you-never-want-to-call-html_safe-in-a-rails-template/
[아래 댓글에 대한 답변으로 수정 됨]
각 요소를 새 줄에 인쇄하고 싶다면 ..
> a = [1, 2, 3, 4]
> a.each{|e| puts e}
1
2
3
4
=> [1, 2, 3, 4]
위의 다른 답변 중 일부가 암시 하듯이 Rails는 html로 렌더링하기 전에 코드를 이스케이프 할 수 있습니다. 다음은이 문제를 해결하는 샘플입니다 (먼저 입력을 삭제 html_safe
하여 결과를 "안전하게"호출 할 수 있도록합니다 ).
my_array = [1, 2, 3, 4]
my_array.map{ |i| i.to_s.sanitize }.join("\n").html_safe
sanitize
입력을 신뢰하지 않는 경우 에만 필요 합니다.
Use the Enter or Return key on your typing surface. .-.
[1,2,3,4].join("
")
참고URL : https://stackoverflow.com/questions/1448864/array-join-n-not-the-way-to-join-with-a-newline
'code' 카테고리의 다른 글
ActiveRecord가 클래스를 다시로드하도록하려면 어떻게해야합니까? (0) | 2020.12.07 |
---|---|
Google Application Engine에서 사용하지 않는 색인을 제거하려면 어떻게해야합니까? (0) | 2020.12.07 |
How can I convert Assembly.CodeBase into a filesystem path in C#? (0) | 2020.12.07 |
Go에서 여러 명령을 파이프하는 방법은 무엇입니까? (0) | 2020.12.06 |
NSUserDefaults에서 모든 값을 얻는 방법이 있습니까? (0) | 2020.12.06 |