루비에서 구분 된 문자열을 분할하여 배열로 변환하는 방법은 무엇입니까?


답변:


412
>> "1,2,3,4".split(",")
=> ["1", "2", "3", "4"]

또는 정수의 경우 :

>> "1,2,3,4".split(",").map { |s| s.to_i }
=> [1, 2, 3, 4]

또는 이후 버전의 루비 (> = 1.9-Alex가 지적한대로) :

>> "1,2,3,4".split(",").map(&:to_i)
=> [1, 2, 3, 4]

28
> = 1.9를 사용하는 경우 "1,2,3,4".split ( ','). map (: to_i)를 사용할 수 있습니다.
Alex Fort

7
적극적인 지원을 사용하는 경우 다음을 수행 할 수 있습니다. map (& : to_i)
jonnii 2016 년

31

"1,2,3,4".split(",") 문자열로

"1,2,3,4".split(",").map { |s| s.to_i } 정수로


19

대한 String Integer공간이없는 등String

arr = "12345"

arr.split('')

output: ["1","2","3","4","5"]

대한 String Integer공간으로와String

arr = "1 2 3 4 5"

arr.split(' ')

output: ["1","2","3","4","5"]

대한 String Integer공간이없는 등Integer

arr = "12345"

arr.split('').map(&:to_i)

output: [1,2,3,4,5]

문자열

arr = "abc"

arr.split('')

output: ["a","b","c"]

설명 :

  1. arr -> 어떤 작업을 수행 할 문자열입니다.
  2. split() ->는 입력을 분할하여 배열로 저장하는 방법입니다.
  3. ''또는 ' '또는 ','->는 주어진 문자열에서 제거해야하는 값입니다.

1

쉼표와 같이 구분 기호가있는 문자열을 변환하는 가장 간단한 방법은 split 메소드를 사용하는 것입니다.

"1,2,3,4".split(',') # "1", "2", "3", "4"]

루비 문서 에서 split 메소드를 사용하는 방법에 대한 자세한 정보를 찾을 수 있습니다

str을 구분 기호에 따라 하위 문자열로 나누고이 하위 문자열의 배열을 반환합니다.

pattern이 String 인 경우 str을 분할 할 때 그 내용이 분리 문자로 사용됩니다. 패턴이 단일 공백 ​​인 경우 str은 공백으로 분할되고 선행 공백과 연속 공백 문자는 무시됩니다.

패턴이 정규 표현식 인 경우 str은 패턴이 일치하는 위치로 나뉩니다. 패턴이 길이가 0 인 문자열과 일치 할 때마다 str은 개별 문자로 분할됩니다. 패턴에 그룹이 포함 된 경우 해당 일치 항목도 배열에 반환됩니다.

패턴을 생략하면 $; 사용. 만약 $; nil (디폴트 값), str은` '가 지정된 것처럼 공백에서 분리됩니다.

limit 매개 변수를 생략하면 후행 널 필드가 억제됩니다. limit이 양수이면 최대 개수의 필드가 반환됩니다 (제한이 1이면 전체 문자열이 배열의 유일한 항목으로 반환 됨). 음수 인 경우 반환되는 필드 수에 제한이 없으며 후행 null 필드는 표시되지 않습니다.


-1
"12345".each_char.map(&:to_i)

each_char기본적으로 동일합니다 split(''): 문자열을 문자 배열로 나눕니다.

흠, 나는 원래 질문에 문자열에 쉼표가 포함되어 있음을 알았으므로 내 대답은 실제로 도움이되지 않습니다 ;-( ..


3
당신이하고있는 일을 설명하기 위해 답을 편집 할 수 있습니까?
MZaragoza
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.