배열을 하나의 문자열로 결합하는 루비


163

Ruby에는 모든 배열 요소를 하나의 문자열로 결합하는 방법이 있습니까?

배열 예 :

@arr = ['<p>Hello World</p>', '<p>This is a test</p>']

출력 예 :

<p>Hello World</p><p>This is a test</p>

6
문서는 당신의 친구입니다! Array, String, Hash 등의 메소드를 연구하는 데 상당히 도움이됩니다.
Mark Thomas

답변:


303

Array#join메소드를 사용하십시오 (join 는 문자열 사이에 삽입 할 것입니다-이 경우 공백).

@arr.join(" ")

1
숫자를 합치면 어떻게 되나요? [1,2,3] => 123?
stevenspiel 2014

3
@ mr.musicman jointo_s정수를 포함하여에 응답하는 모든 열거 형과 함께 작동 하지만 결과는 항상 문자열입니다. 정수 결과를 원하면 결과에 사용할 수 to_i있습니다.
sepp2k

1
처음 String#lines에을 사용하여 여러 줄 문자열을 끊은 my_string.join('')경우 빈 문자열 인수를 사용하여 다시 묶을 수 있습니다 .
Frank Koehl

@ sepp2k의 말에 덧붙이려면 첫 번째와 두 번째 join시도하십시오 . #to_str#to_s
Greg Navis

19

보다 조금 더 비밀 스럽지만 join배열에 문자열을 곱할 수도 있습니다.

@arr * " "

1
암호를 사용하는 것 외에도이 트릭을 사용할 때 가능한 결함이 있습니까?
marcio

4
@marcioAlmada 결함이없고 최소한의 오버 헤드가 있습니다. array.c에서 Ruby가하는 첫 번째 일은 문자열 유형을 확인한 다음 join 메소드를 호출하는 것입니다. 또한 : 쇼 소스 바위와 함께 들어라! 직접 시도해보십시오 : $ Array.instance_methods.*($는 show-source의 약자입니다)
okket

1

내 해결책은 다음과 같습니다.

@arr = ['<p>Hello World</p>', '<p>This is a test</p>']
@arr.reduce(:+)
=> <p>Hello World</p><p>This is a test</p>
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.