[ruby] 모든 공백을 제거하는 루비 기능?

모든 공백 을 제거하는 Ruby 기능은 무엇입니까 ? PHP와 같은 것을 찾고 trim()있습니까?



답변

PHP의 트림과 같이 선행 및 후행 공백 만 제거하려면을 사용할 수 .strip있지만 모든 공백 을 제거 하려면 .gsub(/\s+/, "")대신 을 사용할 수 있습니다 .


답변

s = "I have white space".delete(' ')

그리고 PHP의 trim()기능 을 에뮬레이트하려면 :

s = "   I have leading and trailing white space   ".strip


답변

관련 답변 :

"   clean up my edges    ".strip

보고

"clean up my edges"


답변

String#strip -시작과 끝에서 모든 공백을 제거하십시오.

String#lstrip -처음부터.

String#rstrip -끝에서.

String#chomp(인수없이)- 끝에서 줄 구분 기호 ( \n또는 \r\n)를 삭제합니다 .

String#chop -마지막 문자를 삭제합니다.

String#deletex.delete(" \t\r\n")나열된 모든 공백을 삭제합니다.

String#gsub유니 코드x.gsub(/[[:space:]]/, '') 공백을 포함하여 모든 공백을 제거 합니다 .


참고 : 위의 모든 메소드는 원본을 변경하지 않고 새 문자열을 반환합니다. 문자열을 제자리에서 변경 !하려면 끝에 해당 메소드를 호출하십시오 .


답변

"1232 23 2 23 232 232".delete(' ')
=> "123223223232232"

삭제 작업이 더 빠름 =)

user         system     total      real
gsub, s      0.180000   0.010000   0.190000 (0.193014)
gsub, s+     0.200000   0.000000   0.200000 (0.196408)
gsub, space  0.220000   0.000000   0.220000 (0.222711)
gsub, join   0.200000   0.000000   0.200000 (0.193478)
delete       0.040000   0.000000   0.040000 (0.045157)


답변

Rails / ActiveSupport 를 사용 squish하는 경우 메소드 를 사용할 수 있습니다 . 문자열의 양쪽 끝에서 공백을 제거하고 여러 공백을 단일 공백으로 그룹화합니다.

예를 들어.

" a  b  c ".squish

결과는 다음과 같습니다.

"a b c"

api.rubyonrails.org에서이 참조를 확인하십시오 .


답변

조금 늦었지만이 페이지를 탐색하는 다른 사람이이 버전에 관심이있을 수 있습니다.

사용자가 어떻게 든 앱에 잘라 붙여 넣을 수 있지만 미리 단어 간격을 유지하는 미리 서식이 지정된 텍스트 청크를 정리하려면 다음을 시도하십시오.

content = "      a big nasty          chunk of     something

that's been pasted                        from a webpage       or something        and looks

like      this

"

content.gsub(/\s+/, " ").strip

#=> "a big nasty chunk of something that's been pasted from a webpage or something and looks like this"