2010-01-05 8 views
12

" This is a test "과 같은 문자열이 있습니다. 문자열을 공백 문자로 분할하고 싶습니다. 나는 이런 식으로 작업을 수행합니다문자열을 분리하고 공백을 건너 뛰는 방법은 무엇입니까?

puts " This is a test ".strip.each(' ') {|s| puts s.strip} 

결과는 다음과 같습니다


테스트

인이

왜이 시험을하다 마지막 줄 "This is a test"? 두 단어 사이에 두 개 이상의 공백 문자가 있으면 "행"을 반환하지 않아야합니다.

나는 단지 주어진 문자열에서 단어 분리를 원합니다.
누구나 아이디어가 있습니까?

답변

41
irb(main):002:0> " This is a test ".split 
=> ["This", "is", "a", "test"] 

irb(main):016:0* puts " This is a test ".split 
This 
is 
a 
test 

str.split(pattern=$;, [limit]) => anArray

패턴이 생략되면, $ 값; 이 사용됩니다. $; (기본값은 입니다.) str은 공백 문자`'에서 분할됩니다. 마지막을하지 않으려면 당신은

" This is a test ".strip.each(' ') {|s| puts s.strip} 

을해야

+3

"테스트입니다".split – khelll

2

irb>>> puts " This is a test ".strip.each(' ') {} 
This is a test 
1

첫 번째 명령은 "두고"때문에 될 것 "테스트입니다" 각 블록을 실행 한 후을 입력하십시오. 첫 번째 "풋"을 생략하면 완료됩니다.

관련 문제